mit ein paar kleinen Syntax-Korrekturen und unter zuhilfenahme der Funktion cat sieht das jetzt so aus:
Code: Alles auswählen
mittelwerte <- function(input1, input2, input3){
mittelwert1 <- mean(input1)
mittelwert2 <- mean(input2)
mittelwert3 <- mean(input3)
differenz12 <- mittelwert1 - mittelwert2
differenz13 <- mittelwert1 - mittelwert3
werte <- cbind(mittelwert1, mittelwert2, mittelwert3)
differenz <- paste("Die Differenz zwischen Wert 1 & Wert 2 beträgt", differenz12, "\nDie Differenz zwischen Wert 1 und Wert 3 beträgt", differenz13)
return(list("Werte" = werte, "Differenz"=differenz))
}
ergebnis <- mittelwerte(1:3,2:4,3:5)
ergebnis$Differenz
cat(ergebnis$Differenz)
Ich könnte mir vorstellen, dass Du Deiner Funktion mittelwerte eine print-Option hinzufügst. Dann kann der Nutzer gleich bei Aufruf entscheiden, ob das Ergebnis mittels cat ausgegeben werden soll oder in der Version mit \n zur Weiterverwendung in anderen Funktionen bleiben soll. Zum Beispiel:
Code: Alles auswählen
mittelwerte <- function(input1, input2, input3, silent=FALSE){
mittelwert1 <- mean(input1)
mittelwert2 <- mean(input2)
mittelwert3 <- mean(input3)
differenz12 <- mittelwert1 - mittelwert2
differenz13 <- mittelwert1 - mittelwert3
werte <- cbind(mittelwert1, mittelwert2, mittelwert3)
differenz <- paste("Die Differenz zwischen Wert 1 & Wert 2 beträgt", differenz12, "\nDie Differenz zwischen Wert 1 und Wert 3 beträgt", differenz13)
if(!silent) {cat(differenz); cat("\n")}
return(list("Werte" = werte, "Differenz"=differenz))
}
ergebnis <- mittelwerte(1:3, 2:4, 3:5)
ergebnis <- mittelwerte(1:3, 2:4, 3:5, silent = TRUE)
Code: Alles auswählen
mittelwerte <- function(input1, input2, input3){
mittelwert1 <- mean(input1)
mittelwert2 <- mean(input2)
mittelwert3 <- mean(input3)
differenz12 <- mittelwert1 - mittelwert2
differenz13 <- mittelwert1 - mittelwert3
werte <- cbind(mittelwert1, mittelwert2, mittelwert3)
differenz <- paste("Die Differenz zwischen Wert 1 & Wert 2 beträgt", differenz12, "\nDie Differenz zwischen Wert 1 und Wert 3 beträgt", differenz13)
result <- list("Werte" = werte, "Differenz"=differenz)
class(result) <- "mwresult"
return(result)
}
print.mwresult <- function(r) {
cat("Ergebnis eines dreifachen Mittelwertvergleichs:\n")
cat("Mittelwerte:\n")
cat(r[[1]])
cat("\nFreitext:\n")
cat(r[[2]])
cat("Ergebnis zuende\n\n")
}
ergebnis <- mittelwerte(1:3, 2:4, 3:5)
ergebnis
Bernhard