我有一个列的向量,如下面的
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?
中完成答案 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="|")))