2016-09-22 68 views
1

我試圖從Github使用devtools安裝我的一個R包(更確切地說,是install_github)。但是,即使我將參數dependencies設置爲TRUE,依賴關係也沒有遞歸安裝。也就是說,依賴關係的依賴關係沒有被安裝。因此,該包未安裝。 R發送消息說它找不到這些依賴項之一。它不斷髮送這些消息,直到我安裝了所有東西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上,則不會發生。是否有意義?

+0

這是什麼軟件包? –

+0

當您使用_proper軟件包安裝函數_例如'install.packages()'和一個存儲庫---時,依賴關係會自動解析,並且您始終可以通過[drat](http: //dirk.eddelbuettel.com/code/drat.html)。 –

+0

@RichScriven它是這個:https://github.com/pedrocostaferreira/BETS。我會在問題中包含這些信息。 –

回答

1

問題是在DESCRIPTIONNAMESPACE中存在不一致。許多包裹都是在NAMESPACE中輸入的,要求它們在或Depends字段DESCRIPTION。但是,它們在Suggests下列出,這意味着它們是可選的,因此它們不會自動安裝。但是你的軟件包需要在工作之前安裝它們。方法1:將所有包裝移動到ImportsDESCRIPTION,然後devtools應該全部安裝它們。方法2:如果您確實不需要全部使用它們,並且您不想全部安裝它們,則不要將它們導入NAMESPACE。改爲使用完整名稱package::functionname

閱讀Namespace chapter of Hadley's book R package瞭解更多詳情