我有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
功能可能是我需要的功能,但我不确定如何最好地将其用于此处。
答案 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))