【发布时间】:2018-11-16 15:27:12
【问题描述】:
这是我正在使用的一段代码:
install.package('BiocManager');BiocManager::install('UniProt.ws')
requireNamespace('UniProt.ws')
uniprot_object <- UniProt.ws::UniProt.ws(
UniProt.ws::availableUniprotSpecies(
pattern = '^Homo sapiens$')$`taxon ID`)
query_results <- try(
UniProt.ws::select(
x = uniprot_object,
keys = 'BAA08084.1',
keytype = 'EMBL/GENBANK/DDBJ',
columns = c('ENSEMBL','UNIPROTKB')))
这个特定的键/键类型组合是非生产性的,并产生以下输出:
Getting mapping data for BAA08084.1 ... and ACC
error while trying to retrieve data in chunk 1:
no lines available in input
continuing to try
Error in `colnames<-`(`*tmp*`, value = `*vtmp*`) :
attempt to set 'colnames' on an object with less than two dimensions
在报告的两个[eE]rrors 中,只有第二个是“正确的”R 错误对象,并且在变量query_result 中相应地捕获了try 的使用。
然而,我迫切希望捕获另一个 error 位 (no lines available in input) 以通知下游程序流程。
在玩了很多 capture.output、sink、purrr::quietly 等通过 startpaging(谷歌搜索)找到的选项后,我仍然无法捕获该位。我该怎么做?
【问题讨论】:
-
您尝试过“tryCatch”功能吗?通常比“尝试”效果更好。
标签: r error-handling