使用 download.file 时 R markdown 无法打开 URL

R markdown cannot open URL when using download.file

*请注意,此问题仅发生在 Windows。

我有以下代码 运行 正确地脱离了普通脚本或控制台:

tdir <- tempdir()

stateurl <- "https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_state_500k.zip"
if(file.exists(paste(tdir,"/cb_2018_us_state_500k.shp",sep=""))==F){
download.file(stateurl, destfile = file.path(tdir, "States.zip"))
unzip(file.path(tdir,"States.zip"),exdir=tdir)}

但是当将相同的脚本放在一个块中并尝试在 Rmarkdown 中编织到 HTML 时,我得到警告“无法打开 URL 连接。”

我不知道为什么像下载文件这样简单的事情会在控制台中 运行 但在 RMarkdown 中不会。

我可以使用提供的代码在没有明显模式的情况下重现大约 50% 的错误(即重复 运行 来自同一会话的“编织到 HTML” 将随机 fail/work).

对我来说,如果我明确指定 method = "libcurl" 作为 download.file 的参数(而不是在 [=23= 上使用“wininet”的默认 method = "auto",问题就会消失])

tdir <- tempdir()

stateurl <- "https://www2.census.gov/geo/tiger/GENZ2018/shp/cb_2018_us_state_500k.zip"
if(file.exists(paste(tdir,"/cb_2018_us_state_500k.shp",sep=""))==F){
download.file(stateurl, destfile = file.path(tdir, "States.zip"), method = "libcurl")
unzip(file.path(tdir,"States.zip"),exdir=tdir)}

有了这个“Knit to HTML”一直在工作(至少对于我的 10+ 次测试)。