我想使用模糊匹配来比较人们访问过的两个向量,我使用的是agrep。
person1<-c("supermarket","garage","garden centre","restaurant")
person2<-c("supermkt","park","gdn center","gym","italian restaurant")如果我将person1手动去过的所有地方都输入到agrep中,那么它会告诉我person 1访问了person 2也访问过的3个地方。
agrep("supermarket",person2,max.distance = 0.3)我想要的是一种方法来迭代person 1访问过的地方,得到结果'3‘,并将其赋给一个变量,例如person1result<-3,这样我就可以在以后的编码中使用它。
发布于 2021-02-24 07:51:59
我不确定我是否正确理解了你的问题。但是,迭代的一种方法是使用for-loop或等效的*apply函数,如下所示:
sapply(person1, function(x)agrep(x, person2, max.distance = 0.3))
[1] 1 3 5从这里开始,我希望你能继续解决你的问题的剩余部分。
发布于 2021-02-24 07:57:13
以下是使用outer + agrepl的一种选择
which(
outer(
person1,
person2,
FUN = Vectorize(function(x, y) agrepl(x, y, max.distance = 0.3))
),
arr.ind = TRUE
)[, "col"]这给了我们
[1] 1 3 5https://stackoverflow.com/questions/66342658
复制相似问题