Ich möchte Mittelwert und SD aus einem Datenrahmen mit einer Spalte für den Parameter und einer Spalte für eine Gruppenkennung berechnen. Wie kann ich sie berechnen, wenn Sie tapply
verwenden? Ich könnte sd(v1, group, na.rm=TRUE)
verwenden, kann aber nicht die na.rm=TRUE
in die Anweisung einfügen, wenn Sie tapply
verwenden. omit.na
ist keine Option. Ich habe eine ganze Reihe von Parametern und muss diese Schritt für Schritt durchgehen, ohne die Hälfte des Datenrahmens zu verlieren, wenn alle Zeilen mit einem fehlenden Wert ausgeschlossen werden.Wie man na.rm als Argument an tapply übergeben?
data("weightgain", package = "HSAUR")
tapply(weightgain$weightgain, list(weightgain$source, weightgain$type), mean)
Das gleiche gilt für die by
Aussage wahr.
x<-c(1,2,3,4,5,6,7,8,9,NA)
y<-c(2,3,NA,3,4,NA,2,3,NA,2)
group<-rep((factor(LETTERS[1:2])),5)
df<-data.frame(x,y,group)
df
by(df$x,df$group,summary)
by(df$x,df$group,mean)
sd(df$x) #result: NA
sd(df$x, na.rm=TRUE) #result: 2.738613
Irgendwelche Ideen, wie man das schafft?
Ziemlich viel! Kann ich das auf mehrere Spalten der Tabelle anwenden oder muss ich eine Parameterliste durchlaufen? 'tapply (df [c (" x "," y ")], df $ gruppe, sd, na.rm = TRUE) oder so? – Doc
Die Frage ergibt keinen Sinn. Mit 'help (tapply)' sollten Sie sehen, dass es ein '...' Argument gibt, das als Versprechen beschrieben wird, dass benannte Elemente an die FUN-Funktion übergeben werden. Welchen Fehler haben Sie bekommen, wenn Sie den Code benutzt haben: 'tapply (df $ V1, df $ group, sd, na.rm = TRUE)' –