使用R获取HDF5对象内的对象的列名

时间:2016-09-15 10:55:55

标签: r hdf5 rhdf5

我创建了一个虚拟HDF5对象

libray(rhdf5)
handle = h5createFile("rhd5file.h5")
df_A <- data.frame(height = rnorm(20,55,3), index = c(1:20))
df_B <- data.frame(age = rnorm(10,30,5), address = sample(letters,size= 10,replace = TRUE))
h5write(df_A, "rhd5file.h5", "A")
h5write(df_B, "rhd5file.h5", "B")
h5close(handle)

现在,我想只检索对象df_Adf_B的列名而不读取整个文件rhd5file.h5。有可能吗?

我尝试了h5readAttributes()h5ls(),但没有一个显示列名而没有读取整个对象

必需的输出:

A: height, index
B: age, address

1 个答案:

答案 0 :(得分:0)

您可以在属性中写入组合名称,然后您可以在不读取整个文件的情况下阅读它们:

library(rhdf5)
 handle = h5createFile("rhd5file.h5")
 df_A <- data.frame(height = rnorm(20,55,3), index = c(1:20))
 df_B <- data.frame(age = rnorm(10,30,5), address = sample(letters,size= 10,replace = TRUE))
 h5write(df_A, "rhd5file.h5", "A")
 h5write(df_B, "rhd5file.h5", "B")

 file=H5Fopen("rhd5file.h5")
 did <- H5Dopen(file,"A")
 h5writeAttribute(did, attr=names(df_A),name="colnames")

 H5Dclose(did)
 H5close()

 h5readAttributes("rhd5file.h5","A")

希望得到这个帮助。