计算多个数据帧的平均值

时间:2015-03-09 20:57:54

标签: r function sum dataframe

我想计算两个data.frame的总和。 这是我的data.frame U_data

ID    Rating
1     3.4
2     4.5
3     2.1

这是我的第二个data.frame M_data

M     Rating
M1    3.4
M2    2.9
M3    4.7
M4   5.0

我需要创建新的data.frame avg_data,并在上面的data.frame和减号1中添加相应的数据。例如,对于ID 1,M2,3.4 + 2.9-1 = 5.3。

ID    M1    M2    M3    M4
1     5.8   5.3  7.1   7.4
2
3                          

任何人都可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

# Does this work for you?
df1 <- data.frame(ID = 1:3, Rating = c(3.4, 4.5, 2.1))
df2 <- data.frame(M = c("M1", "M2", "M3", "M4"), Rating = c(3.4, 2.9, 4.7, 5.0))
answer <- outer(df1$Rating, df2$Rating, "+")
answer <- answer -1
colnames(answer) <- df2$M
rownames(answer) <- df1$ID
answer

答案 1 :(得分:0)

试试这个(假设您的U_data为df1且M_data为df2):

res <- t(sapply(df1[,2], function(x) x + df2[,2]-1))
colnames(res) <- df2[,1]
data.frame(ID = df1[,1], res)
  ID  M1  M2  M3  M4
1  1 5.8 5.3 7.1 7.4
2  2 6.9 6.4 8.2 8.5
3  3 4.5 4.0 5.8 6.1