【问题标题】:Particular string split in RR中的特定字符串拆分
【发布时间】:2013-11-21 20:43:30
【问题描述】:

我想在 R 中拆分一个文本字符串,但我想考虑一些方面。例如,如果字符串有一个点.!,我希望我的函数将它们作为我的拆分列表的元素。下面是我想要得到的示例。

  mytext="Caracas. Montevideo! Chicago."  
  split= "Caracas", "." ,"Montevideo", "!", "Chicago", "."    

我目前的方法是用内置 R 函数 gsub 替换以前的“。”通过 " . " 然后我也使用 strsplit 函数。

  mytext=gsub("\\."," .",mytext)
  mytext=gsub("\\!"," !",mytext)
  unlist(strsplit(mytext,split=' '))

所以,我的问题是:是否有另一种方法可以通过配置 strsplit 函数的参数来实现这一点,或者您认为可能更有效的另一种方法。

感谢任何帮助或建议。

【问题讨论】:

    标签: string r


    【解决方案1】:

    前瞻是您在此处寻找的内容:

    strsplit(mytext, split = "(?=(\\.|!))", perl = TRUE)
    #[[1]]
    #[1] "Caracas"     "."           " Montevideo" "!"           " Chicago"    "." 
    

    【讨论】:

    • 值得注意的是,perl 标志对于 R 中的前瞻至关重要
    【解决方案2】:

    eddi 的解决方案不会拆分空格。试试这个:

    > regmatches(mytext, gregexpr(text=mytext, pattern="(?=[\\.\\!])|(?:\\s)", perl=T), invert=T)
    [[1]]
    [1] "Caracas"    "."          "Montevideo" "!"          "Chicago"    "."   
    

    【讨论】:

      最近更新 更多