R个匹配模式:向量和列

时间:2018-06-26 10:54:43

标签: r

我有一个向量:

vector_1 <- c('aa1/10', 'aa1/20', 'aa2/10') 

我有一个数据列,其列为:product(某些行为空)

product 
hello123

hello123;aa1/20
World

我想要另一列称为:检查。 如果我的vector_1中的值之一在列乘积中,那么我想要一个1,否则为0。

我尝试了不同的方法,但没有成功:

df$check <- ifelse(df$product %in% vector_1, 1,0)

不幸的是,没有结果...所以我尝试了:

df$check <- grepl(vector_1, df$product)

但是我收到一条警告消息:在grep中:参数模式的长度超过1,将仅使用第一个元素。

我该如何解决?

结果:

product            check
hello123             0 
                     0
hello123;aa1/20      1
World                0

1 个答案:

答案 0 :(得分:3)

df$check <- as.numeric(grepl(pattern = paste0(vector_1, collapse = "|"), x = df$product))