R Markdown - 如何防止 Knitr 重复下载文件?

R Markdown - How to prevent Knitr from repeatedly downloading a file?

在 R Markdown Rmd. 上工作时,我可以阻止 Knitr 在每次编织 Markdown 时下载文件吗?

我的代码块是:

download.file(url = paste('https://d396qusza40orc.cloudfront.net/',
                      'repdata/data/StormData.csv.bz2',
                      sep = ''),
          destfile = './storm.csv.bz2',
          method = 'curl')) 

块的系统时间本身并没有那么重要:

user    system   elapsed 
0.893   1.139    28.825 

但也许有一种方法可以缓存下载或其他东西,这样我就可以更快地查看 HTML。

您需要在尝试下载之前检查文件是否存在。

   destfile <- './storm.csv.bz2'
    if (!file.exists(destfile))
    {
      your code
    }

使用 httrGETwrite_disk,因为如果 destfile 存在,write_disk 将不会让 GET 执行下载(就像一个小型缓存操作)。 GET 也在幕后使用 RCurl

library(httr)

try(GET(url, write_disk(destfile)))