对于正在工作的项目,我需要从提案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利用所有可用的比赛?
由于
答案 0 :(得分:0)
请参阅合并帮助:?merge
merge( Proposals, Awards, by=ID, all.y=TRUE )
但我不敢相信以前没有问过这个问题。