我试图使用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上,那就不会发生了。是否有意义?
答案 0 :(得分:1)
问题是DESCRIPTION
和NAMESPACE
存在不一致。许多软件包都在NAMESPACE
中导入,要求它们位于Imports
的{{1}}或Depends
字段中。但是它们列在DESCRIPTION
下,这意味着它们是可选的,因此它们不会自动安装。但是你的包需要在工作之前安装它们。
方法1:将所有包转移到Suggests
中的Imports
,然后DESCRIPTION
应将它们全部安装。
方法2:如果您确实不需要将它们全部用于特定用途,并且您不想全部安装它们,请不要在devtools
中导入它们。请改为使用完全限定名称NAMESPACE
。