繁体   English   中英

去除 R 中字符串中的特殊字符

[英]Removing special characters in a string in R

我有一个数据框,我想在其中删除在特定列中找到的所有圆括号 在这种情况下,在 Z 列中。我编写的代码仅删除了一些圆括号。 它删除了它遇到的第一个括号,并遗漏了 rest。我能得到一些帮助吗 go 如何删除所有圆括号。 谢谢

library(tidyverse)
FRUIT <- data.frame("X" = c(1,2,3), 
                 "Y" = c("A1", "A2", "A3"),
                 "Z" = c('[LEMON(ORANGE)xxx[LEMON(GRAPE)]', "[PEAR(APPLE)]xxxORANGE(APPLE)", "PEACHxxx[APR(ICOT)]"), 
                 stringsAsFactors = FALSE)

output 数据场是

X Y   Z
1 A1   [LEMON(ORANGE)xxx[LEMON(GRAPE)]
2 A2   [PEAR(APPLE)]xxxORANGE(APPLE)
3 A3   PEACHxxx[APR(ICOT)]

我试图删除括号的代码如下:

fruit2<-FRUIT%>%
  mutate(Z=str_remove(Z,"\\("))%>%
  mutate(Z=str_remove(Z,"\\)"))

这段代码的问题是它没有删除所有的括号。 它只删除它首先遇到的那些,并忽略 rest。输出如下:

 X Y   Z
 1 A1   [LEMONORANGExxx[LEMON(GRAPE)]
2 A2   [PEARAPPLE]xxxORANGE(APPLE)
3 A3   PEACHxxx[APRICOT]

我想要的 output 是:

 X Y   Z
 1 A1   [LEMONORANGExxx[LEMONGRAPE]
2 A2   [PEARAPPLE]xxxORANGEAPPLE
3 A3   PEACHxxx[APRICOT]

您只需将str_remove替换为str_remove_all即可获得所需的 output:

FRUIT %>%
  mutate(Z = str_remove_all(Z, "\\(")) %>%
  mutate(Z = str_remove_all(Z, "\\)"))

#>   X  Y                           Z
#> 1 1 A1 [LEMONORANGExxx[LEMONGRAPE]
#> 2 2 A2   [PEARAPPLE]xxxORANGEAPPLE
#> 3 3 A3           PEACHxxx[APRICOT]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM