我在尝试将两个数据帧合并为一个时遇到问题。
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
谢谢
答案 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