Chciałbym obliczyć średnią i sd z ramki danych z jedną kolumną dla parametru i jedną kolumną dla identyfikatora grupy. Jak mogę je obliczyć, korzystając z tapply
? Mogę użyć sd(v1, group, na.rm=TRUE)
, ale nie mogę dopasować na.rm=TRUE
do instrukcji, gdy używam tapply
. omit.na
to żadna opcja. Mam cały szereg parametrów i muszę przejść przez nie krok po kroku, nie tracąc połowy ramki danych po wykluczeniu wszystkich linii z jedną brakującą wartością.Jak przekazać na.rm jako argument do tapply?
data("weightgain", package = "HSAUR")
tapply(weightgain$weightgain, list(weightgain$source, weightgain$type), mean)
To samo dotyczy oświadczenia by
.
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
Jakieś pomysły, jak to zrobić?
Dość dużo! Czy mogę zastosować to do kilku kolumn tabeli lub czy będę musiał przechodzić przez listę parametrów? 'tapply (df [c (" x "," y ")], df $ group, sd, na.rm = TRUE)' czy tak? – Doc
Pytanie nie ma sensu. Za pomocą 'help (tapply)' powinieneś zobaczyć, że istnieje argument '...', który jest opisany jako oferujący obietnicę, że nazwane elementy zostaną przekazane do funkcji FUN. Jaki błąd pojawił się, gdy użyłeś kodu: 'tapply (df $ V1, df $ grupa, sd, na.rm = TRUE)' –