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'函数将完成它的工作。 –