Как мы можем иметь неограниченные размеры для набора данных в файле HDF5 с использованием пакета RHDF5?
Хотя это может показаться схожим с уже возникшим вопросом: возможно ли обновить набор данных-размеры-в-hdf5-файл-используя-rhdf5-in-r, но они не совсем совпадают.
В документации RHDF5 написано, что мы можем определить максимальные измерения, которые может иметь набор данных во время создания набора данных, используя h5createDataset() (используя параметр maxdims). Но что, если мы не знаем заранее размеры набора данных, например, у нас может возникнуть ситуация, когда размер набора данных постоянно увеличивается, и поэтому мы не имеем представления о максимальных измерениях, которые может получить набор данных.
В ответе на вопрос, упомянутый выше, было упомянуто, что это можно сделать с помощью пространства данных и констант HDF5.
Может ли кто-нибудь дать некоторое представление о том, как для этого можно использовать константы HDF5 и пространство данных?
1 ответ
Выполняя некоторые эксперименты с функцией 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
Пожалуйста, поправьте меня, если я где-то ошибаюсь или если есть лучший способ сделать это.