我正在尝试使用devtools(更确切地说, install_github
)从Github安装我的一个R包 . 但是,即使我将参数 dependencies
设置为 TRUE
,也不会递归安装依赖项 . 也就是说,没有安装依赖项的依赖项 . 因此,未安装包 . R发送一条消息,说它无法找到其中一个依赖项 . 它一直发送这些消息,直到我安装所有内容 .
这是标准行为吗?或者我错过了什么?我正在谈论的这个包是这个:https://github.com/pedrocostaferreira/BETS .
我在安装其他人的软件包时从未遇到过这个问题 . 由于我的软件包有多个导入和建议,因此我的用户手动逐个安装每个依赖项依赖项将非常烦人 . 我该怎么办?
DESCRIPTION文件的片段:
Depends:
R (>= 3.2.0)
Imports:
testthat (>= 0.9.1),
rootSolve,
ggplot2,
plotly,
urca,
TTR,
forecast,
TSA,
FinTS,
fpp,
stringi,
sqldf,
foreign,
lmtest,
normtest,
zoo,
rugarch,
colorspace,
fracdiff,
tseries,
timeDate,
htmlwidgets,
quadprog,
Rcpp,
gtable,
scales,
viridis
Suggests:
grnn,
Rsolnp,
numDeriv,
spd,
ks,
SkewHyperbolic,
expm,
DBI,
RSQLite,
gsubfn,
tidyr,
dygraphs,
munsell,
plyr,
rmarkdown,
nloptr,
chron,
gridExtra,
xts
确实很大,对吗?
有人建议,如果包已经在CRAN上,那就不会发生 . 是否有意义?
1 回答
问题是
DESCRIPTION
和NAMESPACE
存在不一致 . 许多包都在NAMESPACE
中导入,这要求它们位于Imports
的Imports
或Depends
字段中 . 但是它们列在Suggests
下,这意味着它们是可选的,因此它们不会自动安装 . 但是你的包需要在工作之前安装它们 .方法1:将所有包移至
DESCRIPTION
中的Imports
,然后devtools
应将它们全部安装 .方法2:如果您不想全部安装它们,请不要在
NAMESPACE
中导入它们 . 请改用完全限定名称package::functionname
.有关详细信息,请阅读Namespace chapter of Hadley's book R package