如何将一个数据帧中的单个ID与R中另一个数据帧中的多个ID相匹配?

时间:2014-03-27 23:00:27

标签: r

对于正在工作的项目,我需要从提案ID列表中生成一个表,以及一个包含更多关于其中一些提案的数据的表(称为“奖励”)。我遇到了match()函数的问题; “奖励”表中的数据通常有几行使用相同的ID,而提案框架只有每个ID的一个副本。根据我的尝试,当我需要所有这些时,R忽略多行并且仅返回第一个匹配。虽然我在填写正确的问题时遇到了困难,但我无法在文档或搜索中找到任何帮助我的内容。

这是我到目前为止所拥有的:

#R CODE to add awards data on proposals to new data spreadsheet
#read tab delimited files
Awards=read.delim("O:/testing.txt",as.is=T)
Proposals=read.delim("O:/test.txt",as.is=T)

#match IDs from both spreadsheets
Proposals$TotalAwarded=Awards$TotalAwarded([match(Proposals$IDs,Awards$IDs)]),

write.table(Proposals,"O:/tested.txt",quote=F,row.names=F,sep="\t")

这正是我想要的,除了只封装第一个匹配。

前进的最佳方式是什么?如何让R利用所有可用的比赛?

由于

1 个答案:

答案 0 :(得分:0)

请参阅合并帮助:?merge

merge( Proposals, Awards, by=ID, all.y=TRUE ) 

但我不敢相信以前没有问过这个问题。

相关问题