我有一个字符向量,其中每个元素都用括号括起来。我想要 删除括号,只有字符串。
所以我试过了:
n = c("[Dave]", "[Tony]", "[Sara]")
paste("", n, "", sep="")
不幸的是,由于某些原因,这不起作用。
我在使用相同的代码之前执行了相同的任务,并且不确定为什么这次没有工作。
我想从'[Dave]'
转到'Dave'
。
我做错了什么?
答案 0 :(得分:47)
你可以像这样编写括号:
n = c("[Dave]", "[Tony]", "[Sara]")
gsub("\\[|\\]", "", n)
[1] "Dave" "Tony" "Sara"
答案 1 :(得分:10)
正则表达式替换将执行此操作。看看gsub()函数。
这可以为您提供所需的内容(它会删除'['或']'的任何实例):
gsub("\\[|\\]", "", n)
答案 2 :(得分:6)
其他答案应该足以获得您想要的输出。我只想简要解释为什么你的尝试不起作用。
paste
连接字符串。如果paste
是一个空字符串""
,对于一个分隔符也是空字符串的东西,你真的没有改变任何东西。所以paste
不能缩短字符串;结果将是相同的(如在您的示例中)或更长。
答案 3 :(得分:5)
如果在tidyverse中工作:
library(tidyverse); library(stringr)
n = c("[Dave]", "[Tony]", "[Sara]")
n %>% str_replace_all("\\[|\\]", "")
[1] "Dave" "Tony" "Sara"