Ich habe ein Problem bezüglich Sapply in R:
Ich habe ein Datenframe Test_ALL, die ich durch (zur Zeit) eine Spalte namens Aktivität geteilt. Der Datenrahmen hat ungefähr 20 Spalten mit extra langen Namen (z. B. fBodyBodyGyroJerkMag-std()), die ich nicht explizit aufschreiben möchte. Von diesem Datenrahmen möchte ich für jede Spalte einen Mittelwert erhalten. Ich habe es versucht und es funktionierte für 1 benannte Spalte.R sapply und bedeuten für mehr als 1 Spalte im geteilten Datenframe
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()")]))
aber wenn ich versuchte, einen Mittelwert für mehr als 1 Spalte zu bekommen, hat es nicht funktioniert.
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x [c("fBodyBodyGyroJerkMag-std()","fBodyAccMag-std()")]))
Ich habe versucht, zu diesem, aber auch kein Erfolg
namesERG<-names(Test_ALL)
aa<-split(Test_ALL,Test_ALL$activity)
y<-sapply(aa,function(x) colMeans(x[c(namesERG)]))
Was mache ich falsch? Thak du!
Würde nicht 'sapply (aa, Funktion (x) colMeans (x [-1])' Arbeit für alle Spalten? - Sie keine Daten lieferten so Ich kann nicht überprüfen – Sotos
Was ist die Ausgabe? Was haben Sie erwartet? Haben Sie versucht aggregiert? Etwas in Richtung der Aggregate (. ~ Aktivität, Daten = Test_ALL) '. –
Ich versuchte Sotos Vorschlag, aber ich bekomme das Fehler: Fehler in colMeans (x [-1]): 'x' muss numerisch sein - Test_ALL ist ein Datenrahmen, Test_ALL [1,1] zum Beispiel ist numerisch, aa ist eine Liste – user3443063