处理在 R 中仍然需要很长时间才能执行的缓存块?
Posted
技术标签:
【中文标题】处理在 R 中仍然需要很长时间才能执行的缓存块?【英文标题】:Dealing with a cached chunk that is still taking a long time to execute in R? 【发布时间】:2020-11-24 21:11:38 【问题描述】:我目前有一个 1000 万行的表,我正在上传到 R。我知道上传到 R 的过程需要一些时间,因此我决定将我的块存储为 chache = TRUE
并且我做了很好的措施关注
knitr::opts_chunk$set(cache = TRUE, warning = FALSE,
message = FALSE, cache.lazy = FALSE)
当我重新运行我的 RMarkdown 文档时,仍然需要 30 分钟以上的时间来执行具有大数据框的块。为什么我的结果没有被缓存,因此它不需要花费很长时间来执行?我没有对查询进行任何更改,后端数据也没有更新。
【问题讨论】:
这对yihui.org/en/2018/06/cache-invalidation有帮助吗? 可能,我所做的唯一更改是添加 cache.cmets = FALSE 如果缓存的对象足够大,即使缓存信息已经是 R 二进制格式(应该有最快的加载时间......),它也可能需要很长时间才能加载缓存信息? 【参考方案1】:在你的问题中你有chache = TRUE
,你的意思是cache = TRUE
吗?
您也可以在它自己的 R 脚本中完成繁重的处理,并在您的 Rmarkdown 中使用source('rscript.R')
调用它。在 .R 文件中设置缓存的位置
如this link 中所述,您可以自己缓存对象...
if (file.exists("results.rds"))
res <- readRDS("results.rds")
else
res <- compute_it() # a time-consuming function
saveRDS(res, "results.rds")
【讨论】:
以上是关于处理在 R 中仍然需要很长时间才能执行的缓存块?的主要内容,如果未能解决你的问题,请参考以下文章