3

我创建了一个虚拟 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_A而不df_B读取整个文件rhd5file.h5。可能吗?

我试过h5readAttributes()and h5ls(),但没有一个在不读取整个对象的情况下显示列名

所需输出:

A: height, index
B: age, address
4

1 回答 1

2

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

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")

希望这有帮助。

于 2016-09-15T15:37:35.503 回答