在R或Python中模糊匹配两列

时间:2018-10-22 11:05:19

标签: python r

我们都知道如何使用模糊方法匹配向量中的字符串,例如在像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中做到这一点的方法。

两个向量的大小可能不相同。

预先感谢

1 个答案:

答案 0 :(得分:0)

如果只需要领导"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

我不清楚您是否在寻找成对匹配。