在Excel或R中匹配通配符数组

时间:2016-04-17 05:04:18

标签: regex r excel grep

我试图将A列与B中的任何值匹配,但我无法找出正确的公式来获得匹配结果。 如果B具有对应的通配符值,则A中的值匹配。

A             B     Match
1             2     NO
2_1           3     YES
3             13    YES
3_1           14    YES
3_2                 YES
9                   NO
12                  NO
14                  YES
14_3                YES
16                  NO
19                  NO
20                  NO

我已尝试在B阵列中添加通配符,但这不符合我的预期

C2=MATCH(A2,B2:B5&"*")=#VALUE!

1 个答案:

答案 0 :(得分:3)

使用R,并在数据中加入Match列。

您希望行A的值出现在B列中的任何位置?

> x[x$A %in% x$B,]
   A  B Match
3  3 13   YES
8 14 NA   YES

看起来您可能希望匹配_之前的所有内容:

> with(x, x[sub('_.*', '', A) %in% B,])
     A  B Match
2  2_1  3   YES
3    3 13   YES
4  3_1 14   YES
5  3_2 NA   YES
8   14 NA   YES
9 14_3 NA   YES