两个或更多DataFrame的平均单元格

时间:2017-04-09 16:56:24

标签: r

所以我目前有3个数据帧,我需要平均每个细胞,我不知道如何做到这一点......基本上,我需要获得第1列第一次观察到df1的平均值,df2,df3,和每次观察一样。

这是一个可重复的样本数据。

@SuppressWarnings

我需要创建尺寸为100乘4的第四个数据帧,这是对前三个数据帧中的每个单元求平均值的结果。任何想法都非常感谢!

1 个答案:

答案 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)