如果我有这个清单
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)))
想要计算每个列表中每一列的均值,我可以使用以下代码进行计算。
sapply(do.call("rbind",thelist),mean)
我又如何为每个列表中的每一列(a:c)计算标准偏差,因为sd没有等效函数(至少据我所知)?
任何建议将不胜感激。
一个基本的R解决方案将使用sapply
两次。
仅意味着:
t(sapply(thelist, sapply, mean))
导致
x1 x2
a 0.074625644 0.2086220
b -0.424558873 0.3220446
c -0.008715537 0.2216860
如果您都想要:
my_summary <- function(x){
c(mean = mean(x), sd = sd(x))
}
as.data.frame(lapply(thelist, sapply, my_summary))
导致:
a.x1 a.x2 b.x1 b.x2 c.x1 c.x2
mean 0.07462564 0.208622 -0.4245589 0.3220446 -0.008715537 0.2216860
sd 0.95378405 1.038073 0.9308092 0.5273024 1.082518163 0.8564451
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句