有没有办法检查 R 中已有的 netcdf 文件中是否存在变量?

Is there a way to check if a variable exists in a netcdf file already in R?

我创建了一个包含多个变量的 NetCDF 文件。在调试和测试将新变量写入文件时,我在一些文件中创建了变量 'RH',但大多数文件中仍然没有 'RH'。现在我想要 运行 我的脚本,它将循环遍历我的所有文件并将数据放入它存在的 RH 变量中,或者只添加变量,然后添加数据,它尚不存在。

library(ncdf4)
#Open the original file with my variables in it
ncid_old <- nc_open("original.nc"), write=TRUE )
#Create the 'RH' variable and put it in the file
var <- ncvar_def( 'RH', '%', list(xdim2,ydim2,tdim2), mv2 )
ncid_old <- ncvar_add( ncid_old, var)

如果变量已经存在(在某些情况下就是这样),我会得到这个错误:

Error in R_nc4_def_var_float: NetCDF: String match to name in use
Name of variable that the error occurred on: "RH"
I.e., you are trying to add a variable with that name to the file, but it ALREADY has a variable with that name!

如何先检查变量 'RH' 是否存在?然后我可以在我的 r 脚本中包含一个 if 语句来检查它是否存在,如果它已经存在,那么我不包含该行:

ncid_old <- ncvar_add( ncid_old, var)

相反,我直接将数据添加到变量中:

ncvar_put( ncid_old, var, RHdata, start=c(1,1,1), count=c(nx,ny,12))
"RH" %in% names(ncid_old$var)