如何用 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*
- 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"
我像下面的 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*
- 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"