使用 R 将字符串替换为空字符串,但某些单词除外
Replace string with empty string except certain word using R
美好的一天,我想对除 INDIVIDUAL/BUSINESS 之外的所有带有“”的字符串进行 gsub,然后在名为 business_type 的新列中进行变异。我尝试了很多方法但都失败了。提前致谢。
text <- c("|Name:James Indiana|type:INDIVIDUAL|Id::G123456789&M|Location:Indonesia|", "|Name:James Bond|type:BUSINESS|Id::G&987654321M|Location:Indonesia|")
输出会是这样
business_type
INDIVIDUAL
BUSINESS
我正在使用
mutate(business_type = gsub("[^(\bINDIVIDUAL\b)(\bBUSINESS\b)]+"," ",x)
此方法删除其他字符串,但从其他字符串中排除一些大写字母。
mutate(business_type = gsub("^/(?!INDIVIDUAL$)(?!BUSINESS$)[a-z0-9A-Z:&|]+=$"," ",x)
也没有。我也尝试 ^/(?!ignoreme)([a-z0-9]+)$
正则表达式,但它不起作用。
您可以使用str_extract
提取您感兴趣的词。
stringr::str_extract(text, 'INDIVIDUAL|BUSINESS')
#[1] "INDIVIDUAL" "BUSINESS"
在基础 R 中,
regmatches(text, regexpr('INDIVIDUAL|BUSINESS', text))
您可以使用
mutate(business_type = gsub("\b(?:INDIVIDUAL|BUSINESS)\b(*SKIP)(*F)|(?s)."," ",x, perl=TRUE)
参见regex demo。
正则表达式详细信息:
\b(?:INDIVIDUAL|BUSINESS)\b
- 匹配 INDIVIDUAL
或 BUSINESS
作为整个单词和
(*SKIP)(*F)
- 跳过匹配,从失败的位置继续匹配
|
- 或
(?s).
- 匹配任何字符,包括换行字符((?s)
是一个单行标志,使 .
匹配 PCRE 正则表达式中的任何字符)。
美好的一天,我想对除 INDIVIDUAL/BUSINESS 之外的所有带有“”的字符串进行 gsub,然后在名为 business_type 的新列中进行变异。我尝试了很多方法但都失败了。提前致谢。
text <- c("|Name:James Indiana|type:INDIVIDUAL|Id::G123456789&M|Location:Indonesia|", "|Name:James Bond|type:BUSINESS|Id::G&987654321M|Location:Indonesia|")
输出会是这样
business_type
INDIVIDUAL
BUSINESS
我正在使用
mutate(business_type = gsub("[^(\bINDIVIDUAL\b)(\bBUSINESS\b)]+"," ",x)
此方法删除其他字符串,但从其他字符串中排除一些大写字母。
mutate(business_type = gsub("^/(?!INDIVIDUAL$)(?!BUSINESS$)[a-z0-9A-Z:&|]+=$"," ",x)
也没有。我也尝试 ^/(?!ignoreme)([a-z0-9]+)$
正则表达式,但它不起作用。
您可以使用str_extract
提取您感兴趣的词。
stringr::str_extract(text, 'INDIVIDUAL|BUSINESS')
#[1] "INDIVIDUAL" "BUSINESS"
在基础 R 中,
regmatches(text, regexpr('INDIVIDUAL|BUSINESS', text))
您可以使用
mutate(business_type = gsub("\b(?:INDIVIDUAL|BUSINESS)\b(*SKIP)(*F)|(?s)."," ",x, perl=TRUE)
参见regex demo。
正则表达式详细信息:
\b(?:INDIVIDUAL|BUSINESS)\b
- 匹配INDIVIDUAL
或BUSINESS
作为整个单词和(*SKIP)(*F)
- 跳过匹配,从失败的位置继续匹配|
- 或(?s).
- 匹配任何字符,包括换行字符((?s)
是一个单行标志,使.
匹配 PCRE 正则表达式中的任何字符)。