中實時獲取數據包我正在編寫一個使用各種bioconductor註釋數據包的R包。具體的數據包隨使用情況而變化。因此,我有一個函數,確實是這樣的:使用'require'包代碼在R
if (!require(biocpack_name, character.only=T)) {
source("https://bioconductor.org/biocLite.R")
BiocInstaller::biocLite(biocpack_name)
require(biocpack_name , character.only=T)
}
biocpack_name可以是幾個正在擡頭基於正在分析的特定數據〜30 +註釋數據包。因此,我不想每個添加'建議'(我甚至不知道這是否會工作,因爲錯誤不是爲一個包,而是一個指定包的字符串)。 R CMD CHK給我這個錯誤:
'library' or 'require' call not declared from: ‘biocpack_name’
'library' or 'require' call to ‘biocpack_name’ in package code.
我該如何解決這個問題?
將T更改爲TRUE已解決的問題。不確定的方法建議可以工作,因爲包在一個函數中被加載,然後被另一個函數使用。 'db'不會是創建它的函數的本地部分嗎? – alexvpickering
是的,你不得不想一想你的功能是如何設計的;也許上面的代碼被稱爲'get_db()',每次需要時都返回db符號? –
我嘗試按建議操作,但遇到了錯誤。例如,如果'biocpack_name < - 「hgu95av2.db」'和返回的對象稱爲'db'。以下工作可以得到一些示例鍵:'鍵< - AnnotationDbi :: keys(db)[1:5]'。但是,'AnnotationDbi :: mapIds(db,keys,「SYMBOL」,keytype =「PROBEID」)''和'AnnotationDbi :: select(db,keys,「SYMBOL」)'失敗,並且'object'hgu95av2ORGPKG'not found' – alexvpickering