【问题标题】:How to cut all Lines/Characters in R after specific Characters如何在特定字符后剪切 R 中的所有行/字符
【发布时间】:2020-09-10 03:37:32
【问题描述】:

我目前正在学习一门教授 R 文本分析的课程。由于我对 R 还很陌生,所以我还不知道如何在一组特定字符之后剪切所有行。

例如,我给出了以下内容:

documentName <- "Hello my name is Johann my had is the largest to be deleted X"

我想要的结果是:

documentName <- "Hello my name is Johann"

到目前为止,我已经尝试了以下方法,但它没有让我到任何地方。

gsub("(\Johann).*\\","",documentName)

任何提示将不胜感激。

【问题讨论】:

    标签: r text replace finance sec


    【解决方案1】:

    这是一种方法,捕获出现在Johann 之前的所有内容:

    x <- "Hello my name is Johann my had is the largest to be deleted"
    out <- sub("^(.*\\bJohann)\\b.*$", "\\1", x)
    out
    
    [1] "Hello my name is Johann"
    

    另一种方法,剥离出现在Johann之后的所有内容:

    sub("(?<=\\bJohann)\\s+.*$", "", x, perl=TRUE)
    

    【讨论】:

    • 是的,我一直在寻找这个正则表达式,但想不出来。非常感谢!
    【解决方案2】:

    您可以使用 str_remove() 包中的 dplyr

    str_remove(documentName, "(?<=Johann).*")
    [1] "Hello my name is Johann"
    

    或将您的 gsub() 正则表达式调整为

    gsub("(?<=Johann).*", "", documentName, perl=TRUE)
    [1] "Hello my name is Johann"
    

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-01
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      相关资源
      最近更新 更多