传递的文件名不是字符串! (R降价)

Passed a filename that is NOT a string of characters! (RMarkdown)

我直接从网站 [此处][1] 访问 ncdf 文件到我的 RMarkdown。 当我尝试使用下面代码中的 nc_open 函数读取文件时,出现错误 'Passed a filename that is NOT a string of characters!' 知道我该如何解决这个问题吗? ps: 我什至尝试使用 gzcon 函数解压缩文件,但是当我尝试读取数据时结果是一样的。 谢谢你的帮助! 卡米

library(httr)
library(ncdf4)
nc<-GET("https://crudata.uea.ac.uk/cru/data/hrg/cru_ts_4.05/cruts.2103051243.v4.05/pre/cru_ts4.05.2011.2020.pre.dat.nc.gz")
cru_nc<-nc_open(nc)

这是 mode="w" 还是 mode="wb" 的问题。我以前用过文件。没有ncdf4的经验。

不确定是否可以通过 mode="wb" 获取但可以

file.download(yourUrl, mode="wb")

工作/帮助


编辑:

啊。另一件事是您将对象存储为对象 (nc) 但 nc_open 想要打开一个文件。

我觉得你需要把对象保存到本地(除非nc_open可以直接取URL)然后打开?解压缩后可能。

好的,这里是填写答案:

library(httr)
library(ncdf4)
library(R.utils)
url <- "https://crudata.uea.ac.uk/cru/data/hrg/cru_ts_4.05/cruts.2103051243.v4.05/pre/cru_ts4.05.2011.2020.pre.dat.nc.gz"
filename <- "/tmp/file.nc.gz"

# Download the file and store it as a temp file
download.file(url, filename, mode = "wb")

# Unzip the temp file
gunzip(filename)

# The unzipped filename drops the .gz
unzip_filename <- "/tmp/file.nc"

# You can now open the unzipped file with its **filename** rather than the object
cru_nc<-nc_open(unzip_filename)