NAs在外部函数调用中尝试在R中打开netcdf文件

NAs在外部函数调用中尝试在R中打开netcdf文件,r,netcdf,R,Netcdf,我正在使用R版本3.0.2的库ncdf。我试图一次又一次地打开和关闭一些NetCDF(我可以解释为什么,但这个问题不需要它) 在一次又一次地打开和关闭之后,它最终会失败,并出现以下错误: [1] 3329 [1] "/opt/devel/cdfs/file_one.cdf" [1] "/opt/devel/c

我正在使用R版本3.0.2的库ncdf。我试图一次又一次地打开和关闭一些NetCDF(我可以解释为什么,但这个问题不需要它)

在一次又一次地打开和关闭之后,它最终会失败,并出现以下错误:

[1] 3329                                                                                             

[1] "/opt/devel/cdfs/file_one.cdf"

[1] "/opt/devel/cdfs/file_two.cdf"

[1] "/opt/devel/cdfs/file_three.cdf"

[1] "/opt/devel/cdfs/file_four.cdf"

[1] "/opt/devel/cdfs/file_five.cdf"

Error in open.ncdf(file.path(cdf.dir, cdf)) : 
  NAs in foreign function call (arg 1)
有人知道发生了什么吗?这种错误在本质上似乎是随机的。直到它对外部函数调用发出吠叫的时间是可变的。我在找一个解释或只是一个工作


谢谢

我相信问题在于我分析的前一步中未关闭的对相同文件的连接。我在Linux系统上运行这个,所以我在循环运行时使用

watch ls -l /proc/${PID}/fd

连接的打开和关闭都很好,但是我看到一些旧的连接在我之前的分析中随处可见。我关上了门,一切都很好

也许可以先设置
选项(error=recover)
,然后运行代码,当出现错误时再浏览。@JoshO'Brien谢谢,我来看看。不过,在将错误抛出循环之外之后,我能够立即打开netcdf。这和恢复模式有什么不同吗?我对处理netcdf文件的R包一无所知,所以不能给你太多有根据的指导。也就是说,我会使用浏览器尝试查看错误消息中的“NAs”来自何处。
watch ls -l /proc/${PID}/fd