首页 > 解决方案 > 如何用 gsub 清理括号?

问题描述

我进行了如下表的数据抓取,但我找不到使用 GSUB 清理此表的解决方案。即我尝试了如下代码:

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

标签: rregexgsub

解决方案


您可以使用

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+]图案的意思

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

请参阅R 演示

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" 

推荐阅读