组合两个文件中的行条目,同时添加名称常见的权重

时间:2014-04-02 02:46:25

标签: r dataframe sna

我在尝试将两个数据帧合并为一个时遇到问题。

Data frame structure :1  
    FROM        TO          WEIGHT
1   abc_1   Dummy           100
2   abc_2   Dummy           20
3   xyz_1   abc_3           40

Data frame structure :1  
    FROM        TO          WEIGHT
1   abc_4   Dummy_7         100
2   abc_7   Dummy_9         2000
3   xyz_1   abc_3           400

我想组合具有相同结构的两个数据帧,并在两个条目中的FROM和TO字段相同时添加权重。否则,我只想将一个条目与另一个条目组合在一起。 我想要一个新的数据帧,它给我输出

    FROM        TO          WEIGHT
1   abc_1   Dummy           100
2   abc_2   Dummy           20
**3 xyz_1   abc_3           440**
4   abc_4   Dummy_7         100
5   abc_7   Dummy_9         2000

谢谢

2 个答案:

答案 0 :(得分:1)

只需按类别使用aggregate即可对各种条目求和。尝试在' rbind'上使用with将它们放在同一个对象中的值。

  with(  rbind( df1, df2), aggregate(WEIGHT, list(FROM=FROM, TO=TO) , sum) ) 
   FROM      TO    x
1 xyz_1   abc_3  440
2 abc_1   Dummy  100
3 abc_2   Dummy   20
4 abc_4 Dummy_7  100
5 abc_7 Dummy_9 2000

答案 1 :(得分:0)

dplyr

require(dplyr)
df1<-read.table(header=T,text="
FROM        TO          WEIGHT
1   abc_1   Dummy           100
2   abc_2   Dummy           20
3   xyz_1   abc_3           40")

df2<-read.table(header=T,text="
FROM        TO          WEIGHT
1   abc_4   Dummy_7         100
2   abc_7   Dummy_9         2000
3   xyz_1   abc_3           400")

dfmerged<-
rbind(df1,df2) %.% group_by(FROM,TO) %.% summarise (WEIGHT=sum(WEIGHT))

> dfmerged
Source: local data frame [5 x 3]
Groups: FROM

FROM      TO WEIGHT
1 abc_1   Dummy    100
2 abc_2   Dummy     20
3 xyz_1   abc_3    440
4 abc_4 Dummy_7    100
5 abc_7 Dummy_9   2000