我尝试使用函数gsub
从字符串中删除除67之外的所有数字。
例如:
txt <- "A function 147832 for 67cleaning 67 data 6 7"
欲望输出:
txt <- "A function for 67cleaning 67 data"
我已尝试txt = gsub("[[:digit:]]", "", txt)
,但它会删除所有数字。
答案 0 :(得分:1)
你可以这样做
x = unlist(strsplit(txt, split = '\\s+')) # split your string
paste0(x[Reduce(`|`, lapply(c('[A-Za-z]', '67'), grepl, x))], collapse = ' ') # use the list of regular expression to match the required pattern and put them all together
#[1] "A function for 67cleaning 67 data"
答案 1 :(得分:1)
它不是超级优雅,但你可以分三步完成:
tmp <- gsub("67", "XX", "A function 147832 for 67cleaning 67 data 6 7")
tmp <- gsub("\\d+", "", tmp)
tmp <- gsub("XX", "67", tmp)
tmp
#"A function for 67cleaning 67 data "
首先用标记替换67
的所有实例(例如,XX
),然后删除所有其他剩余数字,最后再回到子67
。