Получить имена столбцов объектов внутри объекта HDF5 с помощью R

Я создал фиктивный объект 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() и h5ls(), но ни один из них не показывает имена столбцов без чтения всего объекта.

Требуемый результат:

A: height, index
B: age, address

person Haroon Rashid    schedule 15.09.2016    source источник


Ответы (1)


Вы можете написать в атрибутах имена столбцов, тогда вы сможете прочитать их, не читая весь файл:

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

Надеюсь, это поможет.

person user3507085    schedule 15.09.2016