R:添加两个数据帧(不同的行数)

R:添加两个数据帧(不同的行数),r,R,我有一个数据帧(df1): 我有另一个数据帧(df2) 如何添加上述两个数据帧以获得以下输出: Type CA AR Total alpha 5 7 12 beta 3 11 14 gamma 6 2 8 delta 12 2 14 如果我使用这行代码: new_df = df1 + df2 我得到以下错误: ‘+’ only defined for

我有一个数据帧(df1):

我有另一个数据帧(df2)

如何添加上述两个数据帧以获得以下输出:

Type     CA     AR     Total
alpha    5      7        12
beta     3      11       14
gamma    6      2        8
delta    12     2        14
如果我使用这行代码:

new_df = df1 + df2
我得到以下错误:

‘+’ only defined for equally-sized data frames
如何添加这两个数据帧,可能是通过匹配“type”列下的名称

提前谢谢

库(dplyr)

(由于
aggregate()
按分组列对输出进行排序的行为,行的顺序稍有偏差,但数据正确。)


df1
df1[df1$Type%在%df2$Type中,]+df2[df2$Type%在%df1$Type中,]
。然后考虑一个RBIN。你的列也不匹配——这是个问题吗?假设你想把CA值加到CA值中(在你所期望的输出中似乎不是这样的情况,但我不确定这是否是个错误),那么我给你的答案将用不相等的行数来工作。这不会产生OP给出的输出。
new_df = df1 + df2
‘+’ only defined for equally-sized data frames
rbind(df1,df2)%>%group_by(Type)%>%summarise_each(funs(sum))
df1 <- data.frame(Type=c('alpha','beta', 'gamma','delta'), CA=c(2,1,6,8), AR=c(3,5,2,1), Total=c(5,6,8,9) );
df2 <- data.frame(Type=c('alpha','beta','delta'), AR=c(3,2,4), CA=c(4,6,1), Total=c(7,8,5) );
aggregate(.~Type,rbind(df1,setNames(df2,names(df1))),sum);
##    Type CA AR Total
## 1 alpha  5  7    12
## 2  beta  3 11    14
## 3 delta 12  2    14
## 4 gamma  6  2     8