所以我有一个由
组成的向量data<-c("Mark And (BD Marketing Da 1 Z _ 9793)",
"Andre All (BD Marketing DA 1 Z _ 9794 (plus))",
"Alli Inn (BD Sport Educ 1 C _ 9722 (plus))",
"Alli Inn (BP Sport Educ 1 Z _ 9347)")
现在我需要删除所有字符 _ 以及括号,其中缺少单词(加号),因此结果应为
Mark And BD Marketing Da 1 Z
Andre All BD Marketing DA 1 Z (plus)
Alli Inn BD Sport Educ 1 C (plus)
Alli Inn BP Sport Educ 1 Z
我用过
gsub("\\s*\\w*$", "", data)
并获得了
Alli Inn (BP Sport Educ 1 Z
但这不正确,因为我需要删除其他括号,并保留(加)写入的位置。
我试过这个:
gsub('\((?!plus)|(?<!plus)\)|.\\d+', '', rownames(data), perl=TRUE)
得到了这个
Alli Inn BP Sport Educ Z
但现在我在字母
答案 0 :(得分:1)
gsub('\\((?!plus)|(?<!plus)\\)|_ [0-9]*', '', data, perl=TRUE)
#[1] "Mark And BD Marketing Da 1 Z "
#[2] "Andre All BD Marketing DA 1 Z (plus)"
#[3] "Alli Inn BD Sport Educ 1 C (plus)"
#[4] "Alli Inn BP Sport Educ 1 Z "
答案 1 :(得分:1)
使用dplyr和stringr这可能会很快而且很脏,但是它可以完成任务:
library(dplyr)
library(stringr)
data %>%
str_replace_all(" _ [1-9][0-9]{0,3}|\\(|\\)", "") %>%
str_replace_all("plus", "(plus)")