2009-11-12 2 views
9

Я пытаюсь загрузить hdf5 в R и столкнуться с некоторыми проблемами. Вот шаги, которые я сделал, чтобы настроить свою среду:Проблемы с R и HDF5

  • R 2.10.0 (x64) на Mac OS X 10.6
  • hdf5 1.8.3, установленные через MacPorts
  • hdf5_1.6.9.tar.gz из CRAN

Я подозреваю, что проблема связана с несовместимостью в моей версии HDF5 и той, которую ожидает модуль R. Для полноты вот как я установил модуль R:

R CMD INSTALL --configure-ВАР = 'CPPFLAGS = -I/Opt/местные/включить' --configure-арг = '- с-hdf5 =/opt/local 'hdf5_1.6.9.tar.gz

Это строит отлично. Библиотека кажется, загрузить без проблем, но никакие данные не возвращаются при попытке загрузить файл:

библиотека (hdf5)

hdf5load ("test.h5")

NULL

Тем не менее,

OSX: данные Скот $ h5dump test.h5 HDF5 "test.h5" { ГРУППА "/" { ДейтаСет "DSET" { DATATYPE H5T_STD_I32LE DataSpace ЛЕГКО {(31)/(31)} ДАННЫЕ { (0): 1, 2, 4, 8, 16, 32, 64, 128 , 256, 512, 1024, 2048, 4096, 8192, (14): 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, (22): 4194304, 8388608, 16777216, 33554432, 67108864, 134217728 , (28): 268435456, 536870912, 1073741824 }} }}

Любые мысли?

Заранее спасибо.

+0

Это не отвечает на ваш вопрос, но я просто указываю, что Mac на основе R 2.10 не удалось: http://www.r-project.org/nosvn/R.check/r-release-macosx-ix86 /hdf5-00check.html. – Shane

+0

Это правда, но это не дает оснований для отказа сборки. Я вручную построил его без ошибок или предупреждений ... – 2009-11-12 23:53:34

+0

Не желая звучать покровительствовать, вы уверены, что hdfload ищет в правильном каталоге, не так ли? Я много раз сталкивался с такими вещами. –

ответ

2

Используйте аргумент verbosity в hdfload() и проверьте свою среду, используя ls(). hdfload() имеет побочный эффект, он загружает таблицы в текущую среду, NULL - это возвращаемое по умолчанию значение. Если вы используете аргумент load=TRUE объекты возвращаются в качестве компонентов именованного списка:

  • load: логическое значение. Если «FALSE», , объекты возвращаются как компоненты именованного списка. Если «TRUE» (по умолчанию), объекты загружаются как отдельные переменные с их собственными именами - функция ничего не возвращает в этом случае.

На моем Mac все работает хорошо с одной и той же установкой.

R> rm(list=ls()) 
R> ls() 
character(0) 
R> hdf5load("TestHDF5.h5", verbosity=3) 
hdf5_global_verbosity=3 load=1 
Processing object: Dataset0 ...... its a dataset...Dataset has ID335544326 
Dataset has tid 201326902 
Dataset has space id 268435467 
Dataset has rank 1 
Dataset has dims/maxdims: 1/1 
Allocating vector with rank=1 dim=1 
calling vector_io. Hangs here with big datsets 
Setting buffer size in plist 
About to read with bufsize = 50 
in string_ref: count=1, size=25 srcbf=25 
leaving string_ref 
Done read 
in vector_io: permuting 
in vector_io: tidying 
Phew. Done it. calling iinfo->add 
Rank > 1 or not VECSXP 
Calling hdf5_load_attributes 
back from hdf5_load_attributes 
...Finished dataset 
Processing object: Table0 ...... its a dataset...Dataset has ID335544327 
Dataset has tid 201326906 
Dataset has space id 268435468 
Dataset has rank 1 
Dataset has dims/maxdims: 1/1 
Dataset has type = VECSXP and rank 1 
Reading... 
....done 
in string_ref: count=1, size=25 srcbf=25 
leaving string_ref 
...Finished dataset 
NULL 
R> ls() 
[1] "Dataset0" "Table0" 
6

Вы также можете попробовать пакет h5r на CRAN. Этот пакет использует новые библиотеки hdf5 и предоставляет больше возможностей, чем библиотека hdf5.

+0

Он, похоже, не включен в CRAN, нашел его на [r-forge] (http://r-forge.r-project.org/projects/h5r /) –

+0

Да, извините. Это на r-кузнице. R-forge раньше предлагала функциональность для получения информации о CRAN, но я не знаю, куда это. – jimmyb

Смежные вопросы