使用rmarkdown时错误保存环境

时间:2019-07-25 07:58:05

标签: r lazy-loading

当我在R会话中运行rmarkdown两次并尝试保存工作区图像(例如,退出时)时,有时会出现以下错误:

Error in save(list = names(.GlobalEnv), file = outfile, version =
version,  :    
  cannot open file '/path/to/my/workspace/rmarkdown_file_cache/docx/diffbind_SS_a24a9612f1c7bc111ac230ebcefdb453.rdb': No such file or directory 
In addition: Warning message: 
In save(list = names(.GlobalEnv), file = outfile, version = version,  :
  restarting interrupted promise evaluation

traceback()没有显示任何信息:

2: save(list = names(.GlobalEnv), file = outfile, version = version, 
       ascii = ascii, compress = compress, envir = .GlobalEnv, precheck = FALSE)
1: save.image()

这种行为是不稳定的,或者至少我找不到模式;因此,我不能给您一个简单的工作示例。它不时发生。但是,显然要依靠cache=TRUE选项来编织块。

显然,出于某些奇怪的原因,R需要rmarkdown延迟加载数据库,并且需要某种方式。我的问题:

  • 为什么?我的意思是,在我的环境中哪里有对该文件的引用?为什么save.image()需要它?
  • 相关:如何保护环境?
  • 如何更好地调试正在发生的事情?
  • 如何避免呢? (我必须使用cache=TRUE)。

1 个答案:

答案 0 :(得分:0)

复制起来并不容易,但是最近我想保存数据集而不是整个环境时遇到了类似的错误。

我假设,您确保目录存在并且Rmarkdown尝试保存到正确的位置,并且您有足够的磁盘空间来保存工作区。

我的问题是由于会话崩溃。我解决了

  • session(在Linux中的.rstudio下)复制到session_orig
  • 删除会话目录
  • 重新启动R