Hallo gming,
gehört das na.rm=TRUE zum Aufruf von mean() ?
Dann stimmt bei
Code: Alles auswählen
group_by(Data,Var3) %>%
summarize(count = n(), mean = mean(Data[,i]), na.rm = TRUE))
etwas nicht.
... und wenn ich richtig zähle, hast Du eine schließende Klammer zuviel.
Gab es denn keine entsprechende Fehlermeldung?
Dein Datenbeispiel ist auch nicht recht günstig, weil eine Gruppierung nach $Var3 alles in einzelne Beobachtungen auflöst.
Aber ich glaube, ich weiß, was Du meinst. Auch dies funktioniert nicht:
Code: Alles auswählen
f_x2 <- function(i){
group_by(Data,Var3) %>%
summarize(count = n(),
mean = mean(Data$Var1, na.rm = TRUE))}
f_x2(1)
Wahrscheinlich liegt es daran, was group_by() und summarize() machen -- das ist so tiefgreifend in der inneren Organisation des Ablaufs, dass man nicht einfach bei summarize() die Varaiblen on-the-fly tauschen kann.
Ein work-around:
Code: Alles auswählen
f_x2 <- function(i) {
Data$neuX <- Data[, i]
Data %>% group_by(Var3) %>%
summarize(count = n(), mean = mean(neuX, na.rm = TRUE))
}
f_x2(1)
f_x2(2)
Gruß, Jörg