【问题标题】:grep in ifelse for a vector of valuesifelse 中的 grep 值向量
【发布时间】:2017-04-07 13:46:51
【问题描述】:

我有以下数据框:

data <- data.frame(MOBILE_NUMBER = c(
          "999/277-135",        
          "075-788-476",        
          "078-388-607",        
          "077/969-557",        
          "076/423-130")) 

如果字符串中的前 7 个字符与以下向量中的一个值匹配,我想创建一个布尔变量:

list_values <- c("071", "072", "073", "074", "075", "076", "077", "078", "079")

我可以使用以下 grep 代码提取值:

grep(paste(list_values,collapse="|"), 
                     data$MOBILE_NUMBER, value=TRUE))

但我不确定如何将其放入 ifelse 语句中,尤其是如何仅在字符串的前 7 个元素上输入文本。

有人吗?

【问题讨论】:

    标签: r if-statement


    【解决方案1】:

    我们可以使用substr 获取第一个 7 个字符的子字符串,在其上应用grepl 并使用as.integer 将其转换为二进制(如果需要)

    as.integer(grepl(paste(list_values,collapse="|"), substr(data[[1]], 1, 7)))
    

    【讨论】:

      猜你喜欢
      • 2019-02-07
      • 1970-01-01
      • 2020-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-11
      • 2019-07-10
      • 1970-01-01
      相关资源
      最近更新 更多