计算具有相同格式的许多数据帧的平均值?

时间:2017-11-02 20:28:56

标签: r

我有15个完全相同的数据帧,但每个数据帧都存储在每列中。每个标题行都完全相同。

这是一个示例数据框,称之为" A":

    Product Q1 Q2
1 Product X 10 15
2 Product Y 20 40
3 Product Z 30 50

而另一个人,称之为" B":

    Product Q1 Q2
1 Product X 12  5
2 Product Y 25 44
3 Product Z 32 51

我想计算所有15个数据帧的平均值。使用我的两个例子,输出将是一个类似的数据框,但具有平均值。像这样:

    Product   Q1   Q2
1 Product X 11.0 10.0
2 Product Y 22.5 42.0
3 Product Z 31.0 50.5

我已经四处寻找解决方案,但无济于事。似乎mapply功能可能是我需要的功能,但我不确定如何最好地将其用于此处。

2 个答案:

答案 0 :(得分:2)

aggregate(.~Product, rbind(A, B), mean)
#    Product   Q1   Q2
#1 Product X 11.0 10.0
#2 Product Y 22.5 42.0
#3 Product Z 31.0 50.5

数据

A = structure(list(Product = c("Product X", "Product Y", "Product Z"
), Q1 = c(10L, 20L, 30L), Q2 = c(15L, 40L, 50L)), .Names = c("Product", 
"Q1", "Q2"), class = "data.frame", row.names = c("1", "2", "3"
))

B = structure(list(Product = c("Product X", "Product Y", "Product Z"
), Q1 = c(12L, 25L, 32L), Q2 = c(5L, 44L, 51L)), .Names = c("Product", 
"Q1", "Q2"), class = "data.frame", row.names = c("1", "2", "3"
))

答案 1 :(得分:1)

由于标题匹配,让我们将所有数据帧放入一个数据框中。

df <- rbind(A,B,... O)

然后我们将使用dplyr进行总结:

require(dplyr)

df %>% group_by(Product) %>%
  summarize(Q1_Avg= mean(Q1), Q2_Avg= mean(Q2))