如何在r中匹配字符串向量与dataframe列

时间:2017-02-08 10:36:13

标签: r

我有一个列的向量,如下面的

   a = "ASDRT" "GTYHE" "AQWER" QWERT"

我有一个如下的数据框

      ID.           Amount

   SDFGH.       45
   ASDRT.        67
   AQWER.      88
   TYUIIO.        543
   QWERT.        32

我希望将矢量值与数据帧的ID列匹配,如果匹配则会打印1 else 0

期望的输出

      ID.         Amount.        Match
    SDFGH.       45.               0
   ASDRT.        67.               1
   AQWER.      88.                1
   TYUIIO.        543.             0
   QWERT.        32.              1

我怎样才能在R?

中完成

1 个答案:

答案 0 :(得分:0)

我们可以使用.删除最后的sub,使用%in%获取逻辑vector,将其强制转换为二进制as.integer以创建匹配'柱

df1$Match <- as.integer(sub("\\.$", "", df1$ID) %in% a)
df1$Match
#[1] 0 1 1 0 1

另一个有效的选项是来自stri_detect

stringi
library(stringi)
as.integer(stri_detect_regex(df1$ID, paste(a, collapse="|")))