我有以下数据框:
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个元素上发送它。
任何?
答案 0 :(得分:1)
我们可以使用substr
来获取前7个字符的子字符串,对其应用grepl
并使用as.integer
将其转换为二进制(如果需要)
as.integer(grepl(paste(list_values,collapse="|"), substr(data[[1]], 1, 7)))