R和HDF5:读取具有嵌套H5T_ARRAY的H5T_COMPOUND数据类型

时间:2018-09-18 13:29:59

标签: r hdf5

我有一个包含以下数据集的hdf5文件:

 DATASET "data" {
     DATATYPE  H5T_COMPOUND {
        H5T_STD_U16LE "rlzi";
        H5T_STD_U32LE "sid";
        H5T_STD_U64LE "eid";
        H5T_ARRAY { [2] H5T_IEEE_F32LE } "gmv";
     }
     DATASPACE  SIMPLE { ( 39838472 ) / ( H5S_UNLIMITED ) }
     ATTRIBUTE "nbytes" {
        DATATYPE  H5T_STD_I64LE
        DATASPACE  SCALAR
     }
  }

每个记录都有一个包含两个元素的数组“ gmv”。我可以使用以下代码通过hdf5r软件包读取此数据集:

library(hdf5r)
fl <- h5file("file.hdf5", mode="r")
ds <- fl$open("/groupname/data")
dat <- ds$read()

使用此方法仅读取两个“ gmv”元素之一,以提供具有以下结构的数据框:

'data.frame':   39838472 obs. of  4 variables:
 $ rlzi: int  26 11 13 14 1 2 5 14 14 11 ...
 $ sid : int  11 16 18 18 33 33 37 40 41 42 ...
 $ eid :integer64 322350180466688 322350180466688 322350180466688 ...
 $ gmv : num  0 0 0 0 0 0 0 0 0 0 ...

有什么办法可以读取每条记录的gmv数组的两个元素吗?

0 个答案:

没有答案