59

形式のファイルがありhdf5ます。Rこれがマトリックスであることはわかっていますが、研究できるようにそのマトリックスを読み込んでみたいと思います。これに役立つはずのパッケージがあるh5rようですが、読みやすく理解しやすいチュートリアルはありません。そのようなチュートリアルはオンラインで入手できますか。具体的には、このパッケージでオブジェクトをどのように読み取り、hdf5実際にマトリックスを抽出する方法を教えてください。

アップデート

rhdf5CRAN の一部ではなく、BioConductoR の一部であるパッケージを見つけました。インターフェイスはドキュメントを理解するのが比較的簡単で、サンプル コードは非常に明確です。問題なく使えました。私の問題は、入力ファイルだったようです。私が読みたかった行列は、実際にhdf5python pickle. そのため、それを開いてアクセスしようとするたびにRsegmentation fault. pythonマトリックスを内部からファイルとして保存する方法を見つけたので、tsvその問題は解決しました。

4

4 に答える 4

22

最近 CRAN で公開したパッケージであるh5を使用することもできます。と比べてrhdf5以下の特徴があります。

  1. ファイル、グループ、データセット、属性などの HDF5 オブジェクトと直接対話するための S4 オブジェクト モデル。
  2. 次のようなコマンドをサポートするデータセットの R に似たサブセット演算子を実装した、より単純な構文 readdata <- dataset[1:3, 1:3] dataset[1:3, 1:3] <- matrix(1:9, nrow = 3)
  3. すべてのデータ型でサポートされている NA 値
  4. コード カバレッジが 80% 以上の 200 以上のテスト ケース。

マトリックスを保存するには、次を使用できます。

library(h5)
testmat <- matrix(rnorm(120), ncol = 3)
# Create HDF5 File
file <- h5file("test.h5")
# Save matrix to file in group 'testgroup' and datasetname 'testmat'
file["testgroup", "testmat"] <- testmat
# Close file
h5close(file)

...そして行列全体をRに読み戻します:

file <- h5file("test.h5")
testmat_in <- file["testgroup", "testmat"][]
h5close(file)

h5 on も参照

于 2015-06-12T14:35:57.553 に答える
4

このパッケージを使用して、rgdalHDF5 ファイルを読み取りました。rgdalおそらく のバイナリ バージョンは をサポートしていないことに注意する必要がありますhdf5。その場合、ソースからビルドgdalする前に、HDF5 をサポートするソースからビルドする必要がありますrgdal

hdf5または、ファイルを からに変換してみてくださいnetcdf。それらが netcdf に入ったら、優れたncdfパッケージを使用してデータにアクセスできます。cdoツールで変換できると思います。

于 2013-04-12T15:06:43.650 に答える
4

このncdf4パッケージは、netCDF-4 へのインターフェイスであり、hdf5 ファイルの読み取りにも使用できます (netCDF-4 は netCDF-3 と互換性がありますが、ストレージ層として hdf5 を使用します)。

開発者の言葉で:

NetCDF-4 は、netCDF-3 と HDF5 データ モデルを組み合わせて、それぞれの望ましい特性を取り入れながら、それぞれの長所を活用します。

netCDF-4 フォーマットは、HDF5 の拡張バージョンをストレージ層として使用することにより、netCDF-3 データ モデルを実装および拡張します。

実際にncdf4は、シンプルなインターフェイスを提供し、古いパッケージhdf5ncdfパッケージを使用するコードから単一のncdf4パッケージにコードを移行することで、コードのバグが少なくなり、記述が容易になりました (私の試行と回避策の一部は、以前の回答に記載されています)。

于 2013-07-03T21:44:58.610 に答える