如何将一个数据帧中的单个ID和R中另一个数据帧中的ID的倍数进行匹配?

如何将一个数据帧中的单个ID和R中另一个数据帧中的ID的倍数进行匹配?,r,R,对于正在工作的项目,我需要从提案ID列表中生成一个表,以及一个包含关于一些提案的更多数据的表,称为“奖励”。我的匹配函数有问题;奖励表中的数据通常有多行使用相同的ID,而建议框架中每个ID只有一个副本。根据我的尝试,R忽略多行,仅在需要所有行时返回第一个匹配。我在文档或搜索中找不到任何对我有帮助的东西,尽管我一直很难用正确的措辞回答问题 以下是我目前掌握的情况: #R CODE to add awards data on proposals to new data spreadsheet #re

对于正在工作的项目,我需要从提案ID列表中生成一个表,以及一个包含关于一些提案的更多数据的表,称为“奖励”。我的匹配函数有问题;奖励表中的数据通常有多行使用相同的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利用所有可用的匹配项

谢谢

请参阅有关合并的帮助:?合并


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

RTM!:-match返回第一个匹配位置的向量。您正在寻找%中的%。。。Awards$TotalAwards[Awards$IDs%in%Propositions$IDs]谢谢我觉得%in%返回的是真还是假?还有,现在就开始编辑。但是如果你将调用向量化,它将返回值,而不是逻辑值。那么,您将如何从奖项中获得多个记录以加入提案?您将有不同数量的行,对吗?此示例绝对不是。
merge( Proposals, Awards, by=ID, all.y=TRUE )