我有两个向量,比如
v1<-c("yellow", "red", "orange", "blue", "green")
v2<-c("blues", "redx", "grean")
我想匹配它们,即“链接”每个元素v1
与 上最相似的元素v2
,这样结果是
> df
v1 v2
1 yellow <NA>
2 red redx
3 orange <NA>
4 blue blues
5 green grean
以下代码给出了预期的结果,但这只是因为它已经手动“格式化”了
df<-data.frame(v1,v2=rep(NA,5))
for (i in 1:nrow(df)) {
ag<-agrep(df[i,1], v2, ignore.case = T, value = T)
if (length(ag)==0) {df[i,2]<-NA}
else if (length(ag)==1) {df[i,2]<-ag}
else {df[i,2]<-ag[1]}
}
碰巧会agrep(df[2,1], v2, max.distance = 0.00001, ignore.case = T, value = T)
导致"redx" "grean"
,即使我设置了max.distance = 0.00001
.
这就是为什么我有 if 条件,但它不能保证选择最相似的答案。
我该如何克服这个问题?
先感谢您