Wenn ich diese ListeAuswertungsstatistiken von mehreren Datenrahmen innerhalb einer Liste
set.seed(123)
thelist <- list(a=data.frame(x1=rnorm(10), x2=rnorm(10)),
b=data.frame(x1=rnorm(10), x2=rnorm(10)),
c=data.frame(x1=rnorm(10), x2=rnorm(10)))
und wollte den Mittelwert jeder Spalte innerhalb jeder Liste berechnen ich mit dem folgenden Code so tun konnte.
sapply(do.call("rbind",thelist),mean)
Wie könnte ich die Standardabweichung zu berechnen, wieder für jede Spalte in jeder Liste (a: c), da es keine entsprechende Funktion für sd (zumindest mein Wissen)?
Irgendwelche Vorschläge würden geschätzt werden.
for (i in seq_along(thelist)) thelist[[i]]$dfname <- names(thelist)[i]
Dann stapeln und nehmen Mittel mit data.table
:
Cool, nie gesehen 'sapply'ing 'sapply' vorher! – Frank
Danke. Am Ende wollte ich CIs. Die Bereitstellung Ihrer Funktion war perfekt. Ich konnte es zu 'my_summary <- function (x) { \t c (Mittelwert = Mittelwert (x), UpperCI = Mittelwert (x) + (1,96 * SD (x)), LowerCI = Mittelwert (x) + ändern (1.96 * sd (x))) ' }. Das funktioniert großartig. Danke für den neuen Trick. –
@ B.Davis Wenn Ihre Daten groß sind, sollten Sie 'mean' und' sd' nur einmal berechnen, wie 'function (x) {m <- mean (x); s <- sd (x); c (...)} 'Sie können sie natürlich auf separate Zeilen setzen, anstatt das Semikolon zu verwenden. – Frank