[英]Fuzzy matching two columns in R or Python
我们都知道如何使用模糊方法匹配向量中的字符串,例如在A <-c(“ Madam”,“ adam”,“ Lizzy”,“ Paul”)等向量中找到字符串“ adam”。
我们可以做一个grep, grep("adam", A)
,得到匹配元素的索引
如何使用模糊方法匹配两个矢量?
例如,我有两个向量A <- c("007996", "12390", "09123")
和B <- c("7996", "9823", "9123")
。 我必须在A和B之间执行模糊匹配,以便获得A中匹配元素的索引,在这种情况下为1 3
因为00996中存在7996,而09123中存在9123
我尝试执行grep(B, A)
,但是R抛出一个错误,指出它将仅考虑B中的第一个元素,因为匹配模式的长度超过一个
任何人都可以提出一种无需使用FOR循环即可在R中执行此操作的方法的建议。
两个向量的大小可能不相同。
提前致谢
如果仅需加"0"
,则可以执行以下操作:
A <- c("007996", "12390", "09123")
B <- c("7996", "9823", "9123")
which(as.numeric(A) %in% as.numeric(B))
# [1] 1 3
# or here just which(as.numeric(A) %in% B)
或者可能 :
which(as.numeric(A) == as.numeric(B))
# [1] 1 3
我不清楚您是否在寻找成对的比赛。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.