在R语言中移除数据框指定列所有圆括号的问题求助
移除data.frame指定列中所有圆括号的解决方案
你的问题出在str_remove函数默认仅会移除第一个匹配到的字符,要移除所有圆括号,需要使用str_remove_all(或str_replace_all)来处理所有匹配项。以下是两种可行的实现方式:
方法1:使用str_remove_all分别处理左右括号
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) fruit2 <- FRUIT %>% mutate(Z = str_remove_all(Z, "\\(")) %>% mutate(Z = str_remove_all(Z, "\\)")) print(fruit2)
方法2:使用str_replace_all一次性替换所有圆括号
利用正则表达式的字符类[()]匹配任意一种圆括号,直接替换为空字符串:
fruit2 <- FRUIT %>% mutate(Z = str_replace_all(Z, "[()]", "")) print(fruit2)
两种方法运行后都会得到你期望的输出:
X Y Z 1 1 A1 [LEMONORANGExxx[LEMONGRAPE] 2 2 A2 [PEARAPPLE]xxxORANGEAPPLE 3 3 A3 PEACHxxx[APRICOT]
内容的提问来源于stack exchange,提问作者thole
相关产品推荐
相关产品推荐

