【问题标题】:replacing many elements of a data.table in r在 r 中替换 data.table 的许多元素
【发布时间】:2014-11-28 05:30:53
【问题描述】:

我有一个单词列表(大约 25,000 个),每个单词我都需要 1)在一堆文本文件中找到(我一直在阅读它们并将它们格式化为 data.tables)和 2)替换每个这些单词中带有“unk”这个词。

如果每个不需要的词都在一个名为wordList的列表中,并且每个词的前后都有一个空格,例如:

" aaaa "        " aaaahhhhh "   " aaaahhhhhh "  " aaas "        " aaasmtg "     " aachallenge "

最好的方法是在循环中使用 gsub,如此处所示?

for (i in 1:length(wordList)) {
    Lines<-as.data.table(gsub(pattern=wordList[i], replacement=' unk ', Lines))
}

我目前可以做到这一点,但我有数百个(小)文件要处理,而且我正在循环浏览 25,000 多个单词,在我的小笔记本电脑上需要几天才能完成。我想知道是否有更有效的方法可以使用 data.tables 来执行此操作,或者我是否最好使用其他工具/方法而不是 r?

【问题讨论】:

  • 只是一个想法,您可以在单个 gsub 调用中加入字符串,例如 gsub(" aaaa | aaas | aaasmtg "," unk ",Lines) ,您可以将其简化为:gsub(paste(wordlist,collapse="|"),"unk",Lines)

标签: r data.table


【解决方案1】:

我认为,与其循环遍历所有单词列表,不如确定单词列表中哪些行有字符串,然后简单地替换它们:

Lines[Lines %in% wordlist]<-' unk '

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-26
    • 2021-08-21
    • 2014-04-16
    • 2014-06-21
    • 2011-04-06
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多