【问题标题】:Removing curly brackets in R删除R中的大括号
【发布时间】:2013-07-08 13:40:22
【问题描述】:

如何删除 R 中的大括号? 例如。 "{abcd}" 到 "abcd"

如何在 R 中使用 gsub 函数来做到这一点?如果有其他方法可用,请提出建议。

【问题讨论】:

  • 您的意思是从字符串值中删除还是从代码本身中删除?

标签: r gsub


【解决方案1】:

试试这个

gsub("\\{|\\}", "", "{abcd}")
[1] "abcd"

或者这个

gsub("[{}]", "", "{abcd}")

【讨论】:

    【解决方案2】:
    x <- "{abcd}"
    gsub("^\\{+(.+)\\}+$", '\\1', x)
    

    这将删除字符串两端的所有大括号。这与@Dickoa 的答案之间的区别在于,这会将任何大括号单独留在字符串中。

    【讨论】:

      【解决方案3】:

      我倾向于使用参数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
      

      【讨论】:

        猜你喜欢
        • 2017-03-25
        • 2013-11-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        • 2020-06-12
        相关资源
        最近更新 更多