如何用gsub清洁支架?

时间:2018-07-24 06:22:12

标签: r gsub data-cleaning

我进行了如下表所示的数据抓取,但找不到通过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

1 个答案:

答案 0 :(得分:1)

您可以使用

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"