【发布时间】:2020-09-17 11:37:26
【问题描述】:
我有从特定网页抓取一些数据的 lapply 功能。
lapply(list, function(x) {
# ...
# some code
# ...
} # end of lapply
where list - 链接向量约 200k。每 600 秒我需要更新页面。为此,我使用跟随构造,但它不能正常工作。在每次 lapply fun 迭代之前,我想检查条件 time - Sys.time() >= 600,如果 TRUE:更新页面和 time变量 ELSE 继续抓取,直到 time - Sys.time() >= 600 为 TRUE。换句话说,我想在 IF 条件下每 600 秒执行一次代码。将不胜感激任何帮助。我想存在更好的解决方案。
assign("time", Sys.time(), envir = .GlobalEnv)
lapply(list, function(x) {
if(time - Sys.time() >= 600){
remDr$refresh()
assign("time", Sys.time(), envir = .GlobalEnv)
}
# ...
# some code
# ...
} # end of lapply
【问题讨论】:
-
"但它不能正常工作" 这究竟是什么意思?是否有错误、警告、意外行为……?
-
第 1 次迭代后的时间差 - Sys.time() 为 2 秒,第 2 次迭代后 - 4 秒,第 3 次后 - 5.2 秒,依此类推,但实际差值高出 10 倍或更多时间
-
也许可以试试
library(compiler); enableJIT(0)?
标签: r