我有以下形式的矢量:
A< -
[1] "[1]" "\"0\"" "\"0\"" "\"0\"" "\"0\"" "[5]" "\"0\"" "\"0\"" "\"0\"" "\"0\""
[11] "[9]" "\"0\"" "\"0\"" "\"0\"" "\"0\"" "[13]" "\"0\"" "\"0\"" "\"0\"" "\"0\""
我想删除所有数字“[1]”,“[5]”,“[11]”,“[15]”......“[1500]”等等在R中使用gsub或regex我在下面试了一下:
remove<- gsub("[0:9]", a)
但是得到以下错误:
Error in gsub("[0:9]", a) : argument "x" is missing, with no default
提前致谢!
答案 0 :(得分:0)
请注意,gsub
仅删除字符向量项中的文本,但不会删除项本身。在这种情况下,您需要一个类似grep
的解决方案。
您可以使用简单的模式来识别这些项目:
^\[\d+]$
请参阅regex demo。
<强>详情
^
- 字符串开头\[
- [
字符\d+
- 1+位数]
- 文字]
$
- 字符串结束。然后,将grep
命令与invert=TRUE
选项一起使用,仅保留与此正则表达式不匹配的项目,并value=TRUE
获取值而不是指数。
请参阅R demo:
> a <- c("[1]", "\"0\"")
> grep("^\\[\\d+]$", a, invert=TRUE, value=TRUE)
[1] "\"0\""