【问题标题】:R matching patterns: vector and columnR匹配模式:向量和列
【发布时间】:2018-06-26 10:54:43
【问题描述】:

我有一个向量:

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

我有一个数据框,列:产品(有些行是空的)

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

【问题讨论】:

    标签: r


    【解决方案1】:
    df$check <- as.numeric(grepl(pattern = paste0(vector_1, collapse = "|"), x = df$product))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-14
      • 1970-01-01
      相关资源
      最近更新 更多