【问题标题】:Remove specific phrases from a string [duplicate]从字符串中删除特定短语[重复]
【发布时间】:2017-10-16 09:01:39
【问题描述】:

我正在尝试将 R 用于一些基本的文本分析。

我有一列包含复杂数据类型。我希望维护一个单独的表,可以用来从第一个数据列中删除某些短语。

我试过 gsubfn 但没有任何成功。

例如

dirtydata <- c("JOHN COURT","@PETER","BOB 22","RUPERT BODY CORPORATE")
removefields <-c("COURT","BODY CORPORATE")

为什么

x <- gsubfn(removefields,"",dirtydata)

不工作?

希望有成果

c("JOHN ","@PETER","BOB 22","RUPERT ")

【问题讨论】:

标签: r gsub


【解决方案1】:

请使用R的base函数找到下面编辑的代码

dirtydata <- c("JOHN COURT","@PETER","BOB 22","RUPERT BODY CORPORATE")
removefields <-c("COURT","BODY CORPORATE")
pastedFields = paste0(removefields,collapse = "|")
gsub(pastedFields,"",dirtydata)

【讨论】:

  • 你能详细说明一下吗?我假设您正在以列表格式获取输出,除了向量?如果是这样,请将您应用的代码行放在数据列上
【解决方案2】:

这概括了您放入 removefields 的任何内容,并去除要删除的字符串周围的空格:

dirtydata <- c("JOHN COURT","@PETER","BOB 22","RUPERT BODY CORPORATE")
removefields <- c("COURT","BODY CORPORATE")
removefields <- paste0("\\s+", removefields, "\\s+", collapse = "|")
x <- gsub(removefields, "", dirtydata)

【讨论】:

    【解决方案3】:

    我们可以使用tm

    dirtydata <- c("JOHN COURT","@PETER","BOB 22","RUPERT BODY CORPORATE")
    removefields <-c("COURT","BODY CORPORATE")
    
    library(tm)
    removeWords(dirtydata, removefields)
    
    > removeWords(dirtydata, removefields)
    [1] "JOHN "   "@PETER"  "BOB 22"  "RUPERT "
    

    【讨论】:

      【解决方案4】:

      试试这个。

      dirtydata <- c("JOHN COURT","@PETER","BOB 22","RUPERT BODY CORPORATE")
      removefields <-c("COURT | BODY CORPORATE")
      x <- gsub(removefields, "", dirtydata)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-21
        • 1970-01-01
        • 1970-01-01
        • 2017-06-12
        • 1970-01-01
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        相关资源
        最近更新 更多