【发布时间】:2022-01-21 03:11:57
【问题描述】:
我正在处理一些标题,我需要删除标题中的括号,但只有 where 里面什么都没有,但如果它有度量单位,则保留其他的。例如
"Sample_No ()" - Sample_No
"SOC (%)" - "SOC (%)"
示例
【问题讨论】:
-
我已经编辑了这个,但是对于只涉及文本输入和输出的操作,提供简单的文本可能会更好。这将使问题更容易理解,尤其是对于使用屏幕阅读器等的人。
我正在处理一些标题,我需要删除标题中的括号,但只有 where 里面什么都没有,但如果它有度量单位,则保留其他的。例如
"Sample_No ()" - Sample_No
"SOC (%)" - "SOC (%)"
【问题讨论】:
如果是空括号匹配左括号后跟右括号,没有任何其他字符,并替换为gsub 中的空白("")(如果有多个匹配项)或示例连sub都够了)
gsub("\\s*\\(\\)", "", v1)
-输出
[1] "Sample_No" "SOC (%)"
或者使用str_remove from stringr
library(stringr)
trimws(str_remove_all(v1, fixed("()")))
[1] "Sample_No" "SOC (%)"
v1 <- c("Sample_No ()", "SOC (%)")
【讨论】:
将gsub 与正则表达式一起使用。 \\s 表示空格 \\( 和 \\) 必须被转义的括号。
x <- c("Sample_No ()", "Sample_No", "SOC (%)", "SOC (%)")
gsub('\\s\\(\\)', '', x)
# [1] "Sample_No" "Sample_No" "SOC (%)" "SOC (%)"
【讨论】:
使用gsub 你可以这样做:
header <- c("Sample_No ()", "SOC (%)")
gsub("\\s*\\(\\)", "", header)
#> [1] "Sample_No" "SOC (%)"
【讨论】: