0
我有以下片斷工程確定,但如果數據集「測試」並不在HDF5文件,該文件是存在產生不必要的錯誤,事實上,有效的情況下:如何在嘗試打開HDF5文件之前測試數據集是否存在於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過程吐出零星的錯誤。
也許使用'trycatch'?我懷疑你的一部分混亂是'h5read'是函數它正在尋找'Test',所以如果它失敗了,那麼'test_data'甚至會被創建。 –
事實上,使用trycatch優雅地解決了我的OP問題。你能否提供一個基於trycatch的高質量答案,我會接受?第一行替換爲:tryCatch(test_data < - h5read('test.h5','Test'),error = function(e){print(''Test'datat not found「)})'其餘的代碼保持不變,因爲'exists'函數將完成它的工作。 –