0

データセット「Test」が hdf5 ファイルに存在しない場合、問題なく動作しますが、実際には有効なケースである次のスニペットがあります。

library(rhdf5)
test_data <- h5read('test.h5', 'Test')
if (exists('test_data')) {
   # then read the data
   df_test <- as.data.frame(t(test_data))
   # work with df_test 
}

データセットが存在しない場合、R はエラーを出力します。

 Error in h5read('test.h5', 'Test') : 
   Object Test does not exist in this HDF5 file.
 Execution halted

Rプロセスが散発的なエラーを吐き出すことなく、これを適切に処理したいと思います。

4

1 に答える 1

3

OK、あなたのコメントに基づいて、これがあなたが望む行だと思います:

ファイル名を引数として入力したと仮定しましょう。

nextfile<- 'test.h5'

tryCatch(test_data <- h5read(nextfile, 'Test'), error = function(e) { print(paste("'Test' dataset not found in ",nextfile)) })

次に、どのファイルが失敗したかがわかります。(おそらく、各ファイルを異なる「test_data」またはリスト変数の要素に格納するように設定された同様のメカニズムがありますtest_data[[j]]

于 2013-09-23T15:50:26.413 に答える