如何删除R中的花括号?例如。"{abcd}" 到 "abcd"
如何在 R 中使用 gsub 函数来执行此操作?如果有其他方法可用,请提出建议。
尝试这个
gsub("\\{|\\}", "", "{abcd}")
[1] "abcd"
或这个
gsub("[{}]", "", "{abcd}")
x <- "{abcd}"
gsub("^\\{+(.+)\\}+$", '\\1', x)
这将删除字符串两端的所有大括号。这与@Dickoa 的答案之间的区别在于,这会将任何大括号单独留在字符串中。
我倾向于用参数分两步来做fixed = TRUE
,这会加快速度。
x <- "{abcd}"
res1 = gsub("{", "", x, fixed = TRUE)
res1 = gsub("}", "", res1, fixed = TRUE)
一些基准测试会告诉你它的速度大约是原来的两倍:
mc = microbenchmark::microbenchmark(times = 300,
a={
gsub("\\{|\\}", "", x)
},
b = {
gsub("[{}]", "", x)
},
c = {
gsub("^\\{+(.+)\\}+$", '\\1', x)
},
d = {
res2 = gsub("{", "", x, fixed = TRUE)
gsub("}", "", res2, fixed = TRUE)
}
)
mc
Unit: microseconds expr min lq mean median uq max neval a 5.120 5.121 5.864220 5.6900 5.690 18.774 300 b 5.120 5.121 5.947683 5.6900 5.690 21.050 300 c 6.827 7.112 8.027910 7.3965 7.965 35.841 300 d 1.707 2.277 2.877600 2.8450 2.846 14.223 300