1

我有一个类似的东西:

test[1] 
"[0 30.5 4.5 10.5 2 35 22.999999999999996 29 5.500000000000001 23.5 18 23.5 44.5 3 44.5 44.00000000000001 43 27 42 35.5 19.5 44.00000000000001 1 0 31 34 18 1.5 26 6 45.99999999999999 10.5 9.5 24 20 42.5 14.5 45.5 20.499999999999996 150 45.5 0 4.5 22.5 4 9 8 0 0 15.5 30.5 7 5.500000000000001 12.5 33.5 15 500 22.5 18 43 4.5 26 23.5 16 4.5 7.5 32 0 0 18.5 33 31 14.5 21.5 0 40 0 0 43.49999999999999 22.999999999999996]"

我想删除每行(test[1] test[2] ...)的 [ 和 ] (第一个和最后一个字符),但保留点(22.9999)。

我尝试了一些 stringr 函数,但我不太喜欢正则表达式......你能帮帮我吗?

4

2 回答 2

8

不需要为此提供软件包。只需使用以下内容:

gsub("\\[|\\]", "", test)

这基本上是说:“寻找test"["( |) "]",如果找到它,请将其替换为空 ( "") 。”

由于[]是正则表达式中的特殊字符,因此需要对其进行转义。


如果您只是删除第一个和最后一个字符,您还可以执行以下操作:

substring(test, 2, nchar(test)-1)

这基本上是说,“提取从第二个位置开始到倒数第二个位置结束的字符串部分。”

于 2014-07-28T10:39:32.170 回答
3

从字符串中删除[和删除的一种简单方法是]

x <- "[12345]"

gsub("[][]", "", x)
# [1] "12345"

在这里,外部[]表示括号中的字符之一。内层][代表要替换的字符。

于 2014-07-28T11:12:29.170 回答