【发布时间】:2021-02-21 06:02:44
【问题描述】:
我想检查在我的观察 (1867) 中是否存在 6900 个名称列表中的一只股票,如果存在,则在不同的列中写“是”。
这是我的代码:
for (i in 1:length(df$upvotes)){
if (str_detect(df$text[i], pattern = paste("[:space:](\\$?)",stocks$Stocks,"(\\$?)[:space:]",collapse ="|"))){
df$call[i] <- "yes"
}}
问题是 20 分钟后仍在运行,而我的计算机发热很多。如果我删除所有正则表达式,它会在几分钟内完成任务。 如何改进代码以提高效率?
【问题讨论】:
-
您能提供一些
dput(head(df))的示例数据吗?避免循环通常会使代码更高效。 -
它说太长了,pastebin给我带来了问题,因为观察中有冒犯性的术语,我该如何提供给你?
-
您是否使用
head只得到几行? -
我复制了你提供的代码,问题是第一个观察结果是整个 reddit 帖子
-
好的,我明白了...我建议的其他链接呢?