我在 R 中有两个不同的数据框,我试图将它们合并在一起。一个只是一组名称,另一个是一组名称,其中包含每个人的相应信息。
所以说我想采用第一个数据框:
Name
1. Blow, Joe
2. Smith, John
3. Jones, Tom
etc....
并将其合并到这个:
DonorName CandidateName DonationAmount CandidateParty
1 blow joe Bush, George W 3,000 Republican
2 guy some Obama, Barack 5,000 Democrat
3 smith john Reid, Harry 4,000 Democrat
这样我就有一个新列表,其中仅包含我的第一个列表中的人员以及第二个列表中的信息。如果两个“名称”值的格式相同,我可以只使用merge(),但是有没有办法以某种方式使用agrep() 或pmatch() 来做到这一点?
此外,我正在使用的第二个数据帧中有大约 2500 万行和 6 列,所以制作一个 for 循环是最快的方法吗?
示例数据的可重现版本:
first <- data.frame(Name=c("Blow, Joe","Smith, John","Jones, Tom"),
stringsAsFactors=FALSE)
second <- read.csv(text="
DonorName|CandidateName|DonationAmount|CandidateParty
blow joe|Bush, George W|3,000|Republican
guy some|Obama, Barack|5,000|Democrat
smith john|Reid, Harry|4,000|Democrat",header=TRUE,sep="|",
stringsAsFactors=FALSE)