繁体   English   中英

R 包:递归安装依赖项

[英]R package: install dependencies recursively

我正在尝试使用 devtools(更准确地说是install_github )从 Github 安装我的 R 包之一。 但是,即使我将参数dependencies设置为TRUE ,也不会递归安装依赖项。 也就是说,没有安装依赖项的依赖项。 因此,未安装该软件包。 R 发送一条消息,说它找不到这些依赖项之一。 它一直发送这些消息,直到我安装了所有东西。

这是标准行为吗? 或者我错过了什么? 我正在谈论的包是这个: https : //github.com/pedrocostaferreira/BETS

我在安装其他人的软件包时从未遇到过这个问题。 由于我的包有几个导入和建议,我的用户手动一个一个地安装每个依赖项真的很烦人。 我该怎么办?

描述文件的片段:

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 上,则不会发生。 是否有意义?

问题是DESCRIPTIONNAMESPACE不一致。 许多包进口的NAMESPACE ,这需要他们在ImportsDepends的字段DESCRIPTION 但是,它们列在“ Suggests下,这意味着它们是可选的,因此不会自动安装。 但是您的软件包在工作之前确实需要安装它们。

方法1:将所有包移动到DESCRIPTION Imports ,然后devtools应该安装它们。

方法 2:如果您确实不需要所有这些用于某些用途,并且您不想全部安装它们,请不要在NAMESPACE导入它们。 请改用全限定名称package::functionname

阅读Hadley 的书 R 包的命名空间章节以获取更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM