2009-11-12 12 views
9

私はhdf5をRにロードしていくつかの問題に遭遇しようとしています。ここで私は私の環境を設定するために要した手順です。RとHDF5のトラブル

からMacPortsの
  • hdf5_1.6.9.tar.gzを介してインストール
    • Mac OS XのR 2.10.0(x64)の10.6
    • HDF5 1.8.3 CRAN

    私はHDF5の私のバージョンとRモジュールが期待しているバージョンの非互換性に関連していると私は思っています。完全を期すために、ここで私はRモジュールをインストールする方法です:

    R CMD --configure-VARSをINSTALL = --configure-引数= ' 'CPPFLAGS = -Iは/ opt//ローカルには、' - と - HDF5を=/opt/local 'hdf5_1.6.9.tar.gz

    これはうまくいきます。ライブラリは問題なく読み込むようだが、私は、ファイルをロードしようとすると、何もデータが返されません。

    ライブラリ(HDF5)

    hdf5load( "test.h5")

    NULL

    しかし

    OSX:データ・スコット$ h5dumpのtest.h5 HDF5 "test.h5" { 基 "/" { DATASET "DSET" { DATATYPE H5T_STD_I32LE データスペースSIMPLE {(31)/(31)} DATA { (0):1、2、4、8、16、32、64、128 (22):4194304、8388608、16777216、33554432、67108864、67108864、134217728(14):16384、32768、65536、131072、26514、524288、1048576、2097152、 、 (28):268435456、536870912、1073741824 }} }}

    任意の考え?

    ありがとうございます。

  • +0

    これはあなたの質問に答えることはできませんが、私はR 2.10上のMacビルドが失敗したことを指摘しています:http://www.r-project.org/nosvn/R.check/r-release-macosx-ix86 /hdf5-00check.html。 – Shane

    +0

    これは当てはまりますが、ビルドに失敗した理由はほとんどありません。私は手動でエラーや警告なしでそれを構築しました... –

    +0

    ひたむきな音を出すことなく、hdfloadが正しいディレクトリを探していることを確信していますか?私は何度もそのようなことをしてきました。 –

    答えて

    2

    hdfload()verbosity引数を使用し、ls()を使用して環境を確認してください。 hdfload()には副作用があり、現在の環境にテーブルをロードします。NULLがデフォルトの戻り値です。

    • load:論理値あなたは引数load=TRUEを使用している場合は、オブジェクトは名前付きリストの要素として返されます。 '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

    CRANでh5rパッケージを試すこともできます。このパッケージは、新しいhdf5ライブラリを使用し、hdf5ライブラリよりも多くの機能を提供します。

    +0

    これはCRANには載っていないようですが、[r-forge](http://r-forge.r-project.org/projects/h5r)にあります。 /) –

    +0

    はい、申し訳ありません。これはr-forge上にあります。 R-forgeはCRANで物事を得るための機能を提供していましたが、どこに行ったのかわかりません。 – jimmyb