【问题标题】:split a string with a plus sign separated in R用R中分隔的加号分割字符串
【发布时间】:2020-09-07 17:22:57
【问题描述】:

我想用“+”分隔一个字符串并使用strsplit,如下所示,但它不起作用。 这是一个例子

strsplit("aa + bb + cc", split = "+")         

它显示像这样拆分的字符。为什么它不起作用?

[1] "a" "a" " " "+" " " "b" "b" " " "+" " " "c" "c"

我怎样才能得到这个?

c("aa", "bb","cc")

【问题讨论】:

  • 试试strsplit("aa + bb + cc", split = "+",fixed=T)
  • 或者试试strsplit("aa + bb + cc", split = "\\+")
  • 另一个:all.vars(reformulate("aa + bb + cc"))

标签: r string


【解决方案1】:

我会使用:

strsplit("aa + bb + cc", "\\s*\\+\\s*")[[1]]

[1] "aa" "bb" "cc"

+ 符号是一个正则表达式元字符,因此需要转义。如果您还想隔离要添加的术语,请在 + 的任一侧添加可选空格。

【讨论】:

    【解决方案2】:

    或者你可以试试这个方法

    library(stringr)
    str_split("aa + bb + cc","[\\s\\+]+")
    #[1] "aa" "bb" "cc"
    

    【讨论】:

      【解决方案3】:

      scan 的选项来自base R

      scan(text = "aa + bb + cc", what = "", sep= "+", strip.white = TRUE, quiet = TRUE)
      #[1] "aa" "bb" "cc"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-03
        • 1970-01-01
        • 1970-01-01
        • 2011-03-26
        • 2011-09-12
        • 2021-06-12
        相关资源
        最近更新 更多