如何删除R中的花括号? 例如。 “{abcd}”改为“abcd”
如何在R中使用gsub函数来执行此操作?如果有其他方法,请建议。
答案 0 :(得分:7)
试试这个
gsub("\\{|\\}", "", "{abcd}")
[1] "abcd"
或者这个
gsub("[{}]", "", "{abcd}")
答案 1 :(得分:2)
x <- "{abcd}"
gsub("^\\{+(.+)\\}+$", '\\1', x)
这将删除字符串两端的所有大括号。这和@Dickoa的答案之间的区别在于,这会在字符串中留下任何括号。
答案 2 :(得分:0)
我倾向于使用参数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