我正在使用带有R版3.0.2的库ncdf。我试图一遍又一遍地打开和关闭一些netcdfs(我可以解释为什么但这个问题不需要它)。
sapply(1:14000, function(whatever) {
print(whatever)
sapply(prediction.cdfs, function(cdf) {
print(file.path(cdf.dir, cdf))
nc = open.ncdf(file.path(cdf.dir, cdf))
close.ncdf(nc)
})
})
反复打开和关闭后,它最终会因此错误而失败:
[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)
任何人都知道发生了什么事吗?这个错误本质上似乎是随机的。关于外来函数调用的时间是可变的。我正在寻找解释或只是一个解决方法?
由于
答案 0 :(得分:2)
我认为问题来自于我分析中上一步中相同文件的未关闭连接。我在Linux系统上运行它,因此我在使用
运行循环时跟踪打开的文件连接watch ls -l /proc/${PID}/fd
连接打开和关闭都很好,但是我看到了之前分析中存在的一些旧连接。我关上了它们,一切都运行得很好!!!