虽然它可能看起来类似于一个已经存在的问题:is-it-possible-to-update-dataset-dimensions-in-hdf5-file-using-rhdf5-in-r,但它们并不完全相同。
在RHDF5文档中,我们可以定义数据集在使用h5createDataset() (使用maxdims参数)创建数据集时可以具有的最大维度。但是,如果我们事先不知道数据集的维数,例如,我们可能会遇到数据集的大小不断增大的情况,因此,我们不知道数据集可以达到的最大维数。
在对上述问题的回答中,提到可以借助dataspace和HDF5常量来完成。
有谁能提供一些关于如何使用HDF5常量和数据空间来做到这一点的想法呢?
发布于 2016-04-10 06:26:39
在对函数h5createDataset()进行一些实验时,我找到了一种方法:
> library(rhdf5)
> fid <- H5Fcreate('test.h5')
> h5createGroup(fid,'1')
[1] TRUE
> h5createDataset(fid,'1/1',dims = c(2,2,2),maxdims = c(Inf,Inf,Inf))
[1] TRUE
Warning message:
In H5Screate_simple(dims, maxdims) :
NAs introduced by coercion to integer range
> arr <- array(c(1:8),c(2,2,2))
> h5write(arr,fid,'1/1')
> h5read(fid,'1/1')
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8如果我错了,或者有更好的方法,请纠正我。
https://stackoverflow.com/questions/36325350
复制相似问题