我目前正在做一个项目并且遇到了一个问题......我正在尝试根据候选人的姓名匹配两个数据框。我已经设法做到了这一点,但是除了 max_dist 为 2 之外,我开始得到重复的条目。但是,如果我可以在运行 stringdist_join 之前按种族(州和地区)对候选人进行“分组”,那么这些将很容易避免,因为每场比赛中只有少数候选人,几乎没有机会有两个名字相似的候选人。
目标是获得一个名为 tmpJoin 的表,其中我可以同时拥有候选人 ID 和 canVotes,以及名称、州、区。
任何建议将不胜感激!
下面是我的代码以及两个数据集的复制
state <- c('AL','AL','AL','AL','AL','NY','NY','NY','NY','NY')
district <-c('01','02','02','03','01','01','02','01','02','02')
FullName <-c('Sonny Callahan','Tom Bevill','Faye Baggiano','Thomas
Bevill','Don Sledge','William Turner', 'Bill Turner','Ed Smith','Tom
Bevill','Edward Smith')
canVotes <-c('234','589','9234','729','149','245','879','385','8712','7099')
yearHouseResult <- data.frame(state, district, FullName,canVotes)
state <- c('AL','AL','AL','AL','AL','NY','NY','NY','NY','NY')
district <-c('01','02','02','03','01','01','02','01','02','02')
FullName <-c('Sonny Callahan','Tom Beville','Faye Baggiano','Thom Bevill','Donald Sledge','Bill Turner', 'Bill Turner','Ed Smith','Tom Bevill','Ed Smith')
candidateID <- c('1','2','3','4','5','6','7','8','9','10')
congrCands <- data.frame(state, district, FullName, candidateID)
tmpJoin <- stringdist_join(congrCands, yearHouseResult,
by = "FullName",
max_dist=2,
method = "osa",
ignore_case = FALSE,
distance_col = "matchingDistance")