我有一个10个数据帧的列表,其中每个元素代表一个不同的变量。
l1 <- list(d1=data.frame(a=c(1,2,3), b=c(4,5,6)),
d2=data.frame(a=c(3,2,1), b=c(6,5,4)),
d3=data.frame(a=c(2,2,2), b=c(5,5,5)))
我想对所有数据帧的每个对应元素取平均值。因此,对于元素[1,1],我的平均值为(1,3,2)。我可以使用以下方法在一个职位上做到这一点:
m1_1<-mean(unlist(lapply(l1, function(x) (x[[1,1]]))))
有没有办法扩展整个数据帧的索引?谢谢,M。
我们可以用Reduce
得到的总和(+
对应的元素),然后由分length
的list
Reduce(`+`, l1)/length(l1)
或更一般的情况转换为array
,然后使用apply
ar1 <- array(unlist(l1), dim = c(dim(l1[[1]]), length(l1)))
apply(ar1, 1:2, mean, na.rm = TRUE)
apply(ar1, 1:2, median, na.rm = TRUE)
apply(ar1, 1:2, sd, na.rm = TRUE)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句