ifel中的grep是值的向量

时间:2017-04-07 13:46:52

标签: r if-statement grep

我有以下数据框:

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个元素上发送它。

任何?

1 个答案:

答案 0 :(得分:1)

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

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