【问题标题】:Deleting lots of characters from a list in R从R中的列表中删除大量字符
【发布时间】:2014-08-09 14:12:00
【问题描述】:

我有一个带有句子的字符列表。我有大约 10000 多行。我想从中删除 1000 多个单词。所以我有一个带有要删除的单词的字符向量。我使用的方法如下:

c<-gsub(pattern = wordsToBeDeleted,replacement = "",x = mainList)

这仅使用第一个单词。我怎样才能完成这项工作?

【问题讨论】:

    标签: r text-mining gsub tm


    【解决方案1】:

    试试这个食谱怎么样:

    sentences = tolower(c("I don't like you.", "But I do like this."))
    dropWords = tolower(c("I", "like"))
    
    splitSentences = strsplit(sentences, " ")
    purged = lapply(X=splitSentences, FUN=setdiff, y=dropWords)
    
    purged
    [[1]]
    [1] "don't" "you." 
    
    [[2]]
    [1] "but"   "do"    "this."
    

    我还建议在那里使用tolower,因为它会处理大小写差异。

    【讨论】:

      【解决方案2】:

      gsub 一次只接受一种模式,但您可以将其与Reduce 结合使用

      #sample data
      sentences<-c(
          "Morbi in tempus metus, quis commodo eros",
          "Cum sociis natoque penatibus et magnis dis parturient montes",
          "Nulla diam quam, imperdiet vitae blandit eu",
          "Nullam nec pellentesque sapien, ac mollis mauris")
      
      words<-c("quis","eros","diam","nec")
      

      我们循环遍历所有单词,从句子中删除它们

      Reduce(function(a,b) gsub(b,"", a,fixed=T), words, sentences)
      

      这给了我们

      [1] "Morbi in tempus metus,  commodo "                            
      [2] "Cum sociis natoque penatibus et magnis dis parturient montes"
      [3] "Nulla  quam, imperdiet vitae blandit eu"                     
      [4] "Nullam  pellentesque sapien, ac mollis mauris" 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-12-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 2022-01-08
        相关资源
        最近更新 更多