Wie übergibt na.rm als argument tapply?
Id berechnen, Mittelwerte und sd aus einem dataframe mit einer Spalte für die parameter und eine Spalte für eine Gruppen-id. Wie kann ich berechnen, wenn Sie tapply
? Ich könnte sd(v1, group, na.rm=TRUE)
, kann aber nicht passen, die na.rm=TRUE
in der Anweisung bei Verwendung tapply
.
omit.na
ist keine option. Ich habe eine ganze Reihe von Parametern und haben, um durch Sie gehen Schritt für Schritt, ohne den Verlust der Hälfte des dataframe, wenn ohne alle Zeilen, die mit einem fehlenden Wert.
data("weightgain", package = "HSAUR")
tapply(weightgain$weightgain, list(weightgain$source, weightgain$type), mean)
Das gleiche gilt für die by
- Anweisung.
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 dieses zu erhalten getan?
- Ziemlich viel! Kann ich mich bewerben, dass mehrere comlumns der Tabelle, oder muss ich eine Schleife durch einen parameter-Liste?
tapply(df[c("x","y")], df$group, sd, na.rm=TRUE)
oder so??? - Die Frage ist nicht, Sinn zu machen. Mit
help(tapply)
Sie sollten sehen, dass es eine...
argument, das beschrieben wird als mit dem Versprechen, dass die benannten Elemente übergeben werden, um die SPAß-Funktion. Welchen Fehler hast du bekommen, wenn du mit dem code:tapply(df$V1, df$group, sd, na.rm=TRUE)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das sollte tun, was Sie wollen.
Wählen Sie die Spalten, die Sie wollen:
Verwenden
sapply
Durchlaufenv
und übergeben Sie die Werte antapply
:Einfach
na.rm=TRUE
imtapply
Funktion: