【发布时间】:2013-09-06 08:29:10
【问题描述】:
我的问题建立在将字符串与多个模式匹配的主题之上。 here 讨论的一种解决方案是使用sapply(keywords, grepl, strings, ignore.case=TRUE),它会产生一个二维矩阵。
但是,当将此方法应用于 5K+ 关键字和 60K+ 字符串时,我遇到了严重的速度问题。(我在 12 小时后取消了该过程)。
一个想法是在 R 中使用哈希表或环境。但是,我不知道如何在保持数字索引的同时将我的字符串“翻译/转换”到环境中?
我有strings[1]...直到strings[60000]
e <- new.env(hash=TRUE)
for (i in 1:length(strings)) {
assign(x=i, value=strings, envir=e)
}
由于assign 中的x 必须是一个字符,我不能这样使用它,但我希望你能理解我的想法..我希望能够使用与我的相同数字来索引环境string[...]矢量
感谢您的帮助!
【问题讨论】:
-
查找字典是您放入环境中的内容,而不是您的字符串。所以关键字是用来查找的。散列(环境)查找是一个两列矩阵/数据框,您可以在其中查找 a 和 b。所以字符串并没有真正去那里。另外我猜真正让你慢下来的是
grepl。无论如何,这不是一个可重复的例子。请发布您迄今为止尝试过的数据和代码。请不要仅仅参考上一个问题,为每个问题提供数据。
标签: regex r hash environment-variables