我目前正在使用 R 开发一个生物信息学项目,在尝试使用
biomaRt
包时遇到错误。安装包并将其加载到 R 中后,我尝试选择一个 biomaRt
数据库用于我的分析。
这是我收到错误时运行的代码:
library(biomaRt)
ensembl <- useEnsembl(biomart = "ensembl", dataset = "hsapiens_gene_ensembl")
错误信息:
Error in `collect()`:
! Failed to collect lazy table.
Caused by error in `db_collect()`:
! Arguments in `...` must be used.
✖ Problematic argument:
• ..1 = Inf
ℹ Did you misspell an argument name?
Backtrace:
▆
1. ├─biomaRt::useEnsembl(biomart = "genes", dataset = "hsapiens_gene_ensembl")
2. │ └─biomaRt:::.getEnsemblSSL()
3. │ └─BiocFileCache::BiocFileCache(cache, ask = FALSE)
4. │ └─BiocFileCache:::.sql_create_db(bfc)
5. │ └─BiocFileCache:::.sql_validate_version(bfc)
6. │ └─BiocFileCache:::.sql_schema_version(bfc)
7. │ ├─base::tryCatch(...)
8. │ │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
9. │ └─tbl(src, "metadata") %>% collect(Inf)
10. ├─dplyr::collect(., Inf)
11. └─dbplyr:::collect.tbl_sql(., Inf)
12. ├─base::tryCatch(...)
13. │ └─base (local) tryCatchList(expr, classes, parentenv, handlers)
14. │ └─base (local) tryCatchOne(expr, names, parentenv, handlers[[1L]])
15. │ └─base (local) doTryCatch(return(expr), name, parentenv, handler)
16. └─dbplyr::db_collect(x$src$con, sql, n = n, warn_incomplete = warn_incomplete, ...)`
R Version: 4.3.1 (2023-06-16 ucrt)
BiomaRt Version: 2.58.0
Operating System: Windows
我尝试更新所有软件包(
biomaRt
和dbplyr
)并重新启动 R,但没有任何帮助。
我将非常感谢有关如何解决此错误的任何指导或见解。预先感谢您的帮助!
这可能是由于
dbplyr
升级造成的,BiocFileCache
中已经有一个合并PR来解决这个问题。
不知何故,
Inf
中的tbl(src, "metadata") %>% collect(Inf)
参数进入了...
的dbplyr::db_collect <- function(con, sql, n = -1, warn_incomplete = TRUE, ...)
而不是n
参数。这是如何发生的超出了我的范围。