传递了一个不是字符串的文件名! (RMarkdown)

问题描述

我正在直接从网站 [此处][1] 访问 ncdf 文件到我的 RMarkdown。 当我尝试使用 nc_open 函数读取文件时,如下面的代码所示,出现错误“传递的文件名不是字符串!” 知道我该如何解决这个问题吗? 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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...