【发布时间】: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