R 在尝试打开HDF5文件之前,如何测试该文件中是否存在数据集?
我有以下代码段可以正常工作,但如果hdf5文件中不存在数据集“Test”,则会生成一个不需要的错误,事实上,这是一个有效的情况:R 在尝试打开HDF5文件之前,如何测试该文件中是否存在数据集?,r,hdf5,R,Hdf5,我有以下代码段可以正常工作,但如果hdf5文件中不存在数据集“Test”,则会生成一个不需要的错误,事实上,这是一个有效的情况: 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 } 我希望能够
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进程抛出零星错误。好的,根据您的评论,我认为这是您想要的一行: 假设您已输入文件名作为参数,因此:
nextfile<- 'test.h5'
tryCatch(test_data <- h5read(nextfile, 'Test'), error = function(e) { print(paste("'Test' dataset not found in ",nextfile)) })
nextfile好的,根据您的评论,我认为这是您想要的行:
假设您已输入文件名作为参数,因此:
nextfile<- 'test.h5'
tryCatch(test_data <- h5read(nextfile, 'Test'), error = function(e) { print(paste("'Test' dataset not found in ",nextfile)) })
nextfile是否可以使用trycatch
?我怀疑你困惑的部分原因是h5read
是寻找测试的函数,因此如果失败,在测试数据创建之前就会发生。确实,使用trycatch优雅地解决了我的问题。你能提供一个基于trycatch的高质量答案吗?我会接受的?替换第一行的工作代码段是:tryCatch(测试数据可能会使用trycatch
?我怀疑您的困惑部分在于h5read
是寻找test
的函数,因此如果失败,在创建test\u数据之前就会发生。确实,使用trycatch可以优雅地解决我的问题。您能否提供一个基于trycatch的高质量答案我会接受吗?替换第一行的工作代码段是:tryCatch(test\u data