我在尝试将两个数据帧合并为一个数据帧时遇到了问题。
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
谢谢
只需按类别使用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
with 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