我试图将一个hdf5加载到R中,并遇到一些问题。下面是我为配置环境所采取的步骤:
Mac 10.6 macports
我怀疑我所遇到的问题与我版本的HDF5和R模块所期望的不兼容有关。为了完整起见,我是如何安装R模块的:
安装--configure-vars='CPPFLAGS=-I/opt/local/include‘--配置-args=’-with-hdf5 5=/
/‘hdf5_1.6.9.tar.gz
这个造得很好。库似乎没有问题地加载,但是当我试图加载一个文件时,没有返回数据:
库(Hdf5)
hdf5load("test.h5")
空
然而,
osx:data scott$ h5dump test.h5 HDF5 "test.h5“{ GROUP "/”test.h5“{ DATATYPE H5T_STD_I32LE DATASPACE SIMPLE {( 31 )/( 31 )} DATA { (0):1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,(14):16384,32768,65536,131072,262144,524288,104857,2097152,(22):4194304,8388608,16777216,33554432,67108864,134217728,(28):268435456,536870912,1073741824 }
有什么想法吗?
提前谢谢。
发布于 2009-11-14 01:21:24
在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"发布于 2011-04-18 21:54:20
您也可以在CRAN上尝试h5r包。此包使用新的hdf5库,并提供比hdf5库更多的功能。
https://stackoverflow.com/questions/1725609
复制相似问题