首页 > 解决方案 > 删除括号之前但在 R 中前面的逗号之后的字符

问题描述

我有以下数据框:

df<-c("red apples,(golden,red delicious),bananas,(cavendish,lady finger),golden pears","yellow pineapples,red tomatoes,(roma,vine),orange carrots")

我想删除逗号和括号前面的单词,这样我的输出就会产生:

[1] "golden,red delicious),cavendish,lady finger),golden pears" "yellow pineapples,roma,vine),orange carrots"

理想情况下,右括号也将被删除。但我可以用gsub.

我觉得后视可能有效,但似乎无法正确编码。

谢谢!

编辑:我修改了数据框,以便我要删除的单词是一个由两个单词组成的字符串。

标签: rregexregex-lookaroundslookbehind

解决方案


我们可以使用base Rwithgsub来删除字符。我们匹配一个单词 ( \\w+) 后跟空格 ( \\s+) 后跟单词 ( \\w+) 逗号 ( ,) 并(替换为空白 ( "")

gsub("\\w+\\s+\\w+,\\(", "", df)
#[1] "golden,red delicious),cavendish,lady finger),golden pears" 
#[2] "yellow pineapples,roma,vine),orange carrots"  

或者,如果,是检查单词的模式之一,我们可以使用不是,

gsub("[^,]+,\\(", "", df)
#[1] "golden,red delicious),cavendish,lady finger),golden pears" 
#[2] "yellow pineapples,roma,vine),orange carrots" 

推荐阅读