我已经在Linux机器上成功安装了hdf5软件包。我现在希望从循环中读取大量hdf5文件的数据并创建一个时间序列。每个hdf5文件对应不同的时间。在阅读了很多文件(超过1000个)后,R说太多的文件都打开了。我想找到一种方法来关闭它们,以便循环可以继续。下面是代码:如何在R中加载后关闭hdf5文件?
fdate <- "200605312355" # the first date for my test loop
fmax <- 1400
arr <- vector()
for (i in 1:fmax){
fname <- paste(fdate,"_.h5") # path of h5 file
fid <- hdf5load(fname) # fid = NULL
arr[i] <- somevariable$data_array[lon,lat]
# would like to close the file here
fdate <- newdate(fdate,60*5) # a function that increments the date by seconds.
}
的HDF5包中包含的功能hdf5cleanup,这看起来似乎是干净的东西了,但它需要一个文件标识符。我上面的代码中的fid返回NULL。试图插入文件名,而不是hdf5cleanup(fname)导致R中止。也许hdf5load应该关闭文件并失败。如果是这种情况,是否有任何方法通过发出system()命令或其他方式来关闭连接?
可以肯定的是,showConnections()不返回任何内容,简直就是头文件名称“描述类模式文本isopen可读取可以写入”。
我的问题简而言之: 如何在使用hdf5load()加载后在R中关闭与hdf5文件的连接?
我'R'中止,你应该联系'hdf5'包的维护者,因为这不应该发生。维护者也可以告诉你正确的调用来关闭文件。 –