所以我目前有3个数据帧,我需要平均每个细胞,我不知道如何做到这一点......基本上,我需要获得第1列第一次观察到df1的平均值,df2,df3,和每次观察一样。
这是一个可重复的样本数据。
@SuppressWarnings
我需要创建尺寸为100乘4的第四个数据帧,这是对前三个数据帧中的每个单元求平均值的结果。任何想法都非常感谢!
答案 0 :(得分:3)
我们可以使用Reduce
与+
一起执行此操作,并除以list
中的数据集数量。这样可以灵活地将'n'个数据集保存在list
dfAvg <- Reduce(`+`, mget(paste0("df", 1:3)))/3
或另一种选择是转换为array
然后使用apply
,它还可以选择删除缺失的值(na.rm=TRUE
)
apply(array(unlist(mget(paste0("df", 1:3))), c(dim(df1), 3)), 2, rowMeans, na.rm = TRUE)
正如@ user20650所述,rowMeans
可以array
直接应用于dim
rowMeans(array(unlist(mget(paste0("df", 1:3))), c(dim(df1), 3)), dims=2)