如何用 gsub 清理括号?

How to clean brackets with gsub?

我像下面的 table 那样进行了数据抓取,但是我找不到通过 GSUB 清理这个 table 的解决方案。也就是说,我尝试了如下代码:

populous_table$Tax_GDP <- gsub("[:punct:]","",populous_table$Tax_GDP ) 

但是此代码无法清除 7 号澳大利亚的括号 []。 谁能帮帮我?

1 Afghanistan  6.4
2 Albania 22.9
3 Algeria 7.7
4 Angola 5.7
5 Argentina 37.2
6 Armenia 22.0
7 Australia 34.3 [2]
8 Austria 43.4

您可以使用

populous_table$Tax_GDP <- gsub("\s*\[\d+]","", populous_table$Tax_GDP ) 

或者,如果 [digits] 子字符串总是在末尾,添加 $:

populous_table$Tax_GDP <- gsub("\s*\[\d+]$", "", populous_table$Tax_GDP ) 

\s*\[\d+] pattern表示

  • \s* - 0+ 个空格
  • \[ - 一个 [ 字符
  • \d+ - 1+ 位数
  • ] - 一个 ] 字符。

R demo:

x <- c("1 Afghanistan  6.4", "2 Albania 22.9", "3 Algeria 7.7", "4 Angola 5.7", "5 Argentina 37.2", "Armenia 22.0", "7 Australia 34.3 [2]", "8 Austria 43.4")
gsub("\s*\[\d+]", "", x) 
## => [1] "1 Afghanistan  6.4" "2 Albania 22.9"     "3 Algeria 7.7"     
      [4] "4 Angola 5.7"       "5 Argentina 37.2"   "Armenia 22.0"      
      [7] "7 Australia 34.3"   "8 Austria 43.4"