计算多个数据帧的平均值?
calculate average over multiple data frames?
我想计算两个 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
谁能帮我解决这个问题?
试试这个(假设你的 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
# 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
我想计算两个 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
谁能帮我解决这个问题?
试试这个(假设你的 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
# 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