我有df1:
Type CA AR Total
alpha 2 3 5
beta 1 5 6
gamma 6 2 8
delta 8 1 9
我有df2:
Type CA AR Total
alpha 3 4 7
beta 2 6 8
gamma 9 1 10
delta 4 1 5
我想在两个数据帧中添加值,以获得1个数据帧:
Type CA AR Total
alpha 5 7 12
beta 3 11 14
gamma 15 3 18
delta 12 2 14
示例 - > (alpha,CA)= 2(来自df1)+ 3(来自df2)= 5(得到的df)
有谁知道怎么做?我认为它并不完全合并,因为merge会覆盖该值,而as,我想添加该值。
提前致谢!!
答案 0 :(得分:3)
+
是矢量化的,这只是R
cbind(df1[1], df1[-1] + df2[-1])
# Type CA AR Total
# 1 alpha 5 7 12
# 2 beta 3 11 14
# 3 gamma 15 3 18
# 4 delta 12 2 14
如果您的数据集订单不正确,可以使用match
(如评论中所述)
cbind(df1[1], df1[, -1] + df2[match(df1$Type, df2$Type), -1])
答案 1 :(得分:1)
您可以将它们相加并重新添加因子列。
df_tot <- df1 + df2
df_tot$Type = df1$Type
答案 2 :(得分:0)
如果你想走那条路,你可以使用dplyr
+ magrittr
:
library("dplyr")
library("magrittr")
df1 %>% select(-type) %>%
add(df2 %>% select(-type)) %>%
mutate(type = df1$type)
注意:这假定df1
和df2
以相同的方式排序。