Как я могу выделить DataSet больше, чем поместится в памяти в R?

У меня есть внешнее приложение (не-R), чей вход представляет собой файл HDF5, содержащий плотный куб данных. Я хочу сгенерировать данные для этого в R.

Обычный способ создать HDF5 DataSet в R будет выглядеть так:

`

library(h5)
data <- numeric( 8*8*1000000)
dim(data) <- c(8,8,1000000)
file <- h5file("test.h5", 'w')
file['data'] <- data`

Это работает, если достаточно памяти для создания data, но не когда данные большие. Я могу создавать данные в виде срезов и, следовательно, записывать их в файл, если я смогу сначала создать DataSet.

Чтобы попытаться создать набор данных, я делаю

file <- h5file("test.h5", 'w')
createDataSet(file, 'data', NA, 'double', c(8,8,1000000))

Тем не менее, R отвергает это высказывание

невозможно найти унаследованный метод для функции 'createDataSet' для подписи '"H5File", "символ", "числовой", "символ", "числовой", "отсутствует", "отсутствует", "отсутствует" "

Вызывающая подпись в документации предполагает, что "размеры" - это не вектор, а целое число, возможно, указывающее количество измерений. Я экспериментировал с другими сигнатурами вызовов и получил несоответствие - возможно, H5File не является типом CommonFG, хотя CommonFG является родительским классом H5File.

0 ответов

Другие вопросы по тегам