簡體   English   中英

R包:描述,選擇性導入和命名空間

[英]R package: description, selective import and namespace

盡管在類似主題上有很多帖子,但它們都沒有幫助我理解如何將描述文件設置為R包。

我的問題是:

1.)我的描述文件現在是否正確? 我是否正確使用“依賴”和“導入”? (也許是重復的問題...)

2.)需要的包(依賴項?)是否在需要時自動與我的包一起安裝,或者當我的某個包函數需要引用導入包的功能時“加載”? (在這個問題上沒找到任何東西......)

我試圖向CRAN提交一個包並得到以下反饋:

  • 檢查包依賴...注意取決於:包括非默認包:'MASS''car''外來''ggplot2''lmtest''plyr''reshape2''scale'在搜索路徑中添加這么多包過多有選擇地進口是優選的。

我最初在DESCRIPTION文件的depends部分列出了上面提到的所有包。 在NAMESPACE文件中,我對上面列出的所有包使用了import(pkgName)

之后,我使用NAMESPACE文件中的importFrom(pkgName, function)更新了我的文件,並將大部分包移到了DESCRIPTION文件的導入部分。 使用當前R-devel版本的包檢查不再提供此注釋。 這是我的DESCRIPTION文件的摘錄:

License: GPL-3
Depends:
    ggplot2
Imports:
    MASS,
    car,
    foreign,
    lmtest,
    plyr,
    reshape2,
    scales
Collate:
    'sjImportSPSS.R'

和NAMESPACE文件:

import(ggplot2)
importFrom(MASS,lda)
importFrom(MASS,loglm)
importFrom(car,crPlots)
importFrom(car,durbinWatsonTest)
importFrom(car,influencePlot)
importFrom(car,leveragePlots)
importFrom(car,ncvTest)
importFrom(car,outlierTest)
importFrom(car,spreadLevelPlot)
importFrom(car,vif)
importFrom(foreign,read.spss)
importFrom(lmtest,bptest)
importFrom(plyr,adply)
importFrom(plyr,ddply)
importFrom(reshape2,melt)
importFrom(scales,brewer_pal)
importFrom(scales,percent)

我不確定這種方法是否解決了上面的檢查說明中給出的問題。 此外,當我用library(sjPlot)加載我的包時,ggplot2也被附加,但沒有其他包。 我的包裹是否仍適用於其他用戶? 如果他們沒有安裝所有需要的軟件包怎么辦?

?install.packages ,默認行為是Depends:和Imports:如果尚未安裝,則安裝包。 檢查sessionInfo() ,您將看到您的Imports:已加載(駐留在內存中)但未附加(在磁盤上可用)。 如果您的importFrom語句涵蓋了包代碼中使用的符號,那么您的代碼將適用於其他符號(如果缺少導入,則會向您發出有關未定義的全局變量的警告)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM