【问题标题】:install other packages when creating new package in R在 R 中创建新包时安装其他包
【发布时间】:2013-04-02 17:56:36
【问题描述】:

我创建了一个名为 myPackage 的 R 包。在那个包中,我使用了其他包,例如RJSONIOstringrRSQLiteRcpp。我想在安装myPackage 时安装所有这些软件包,如果之前没有安装的话。

这可能吗?

【问题讨论】:

    标签: r installation package


    【解决方案1】:

    您可以在DESCRIPTION 文件的DEPENDS 部分中指定软件包列表。从链接的文档文件中

    “Depends”字段给出了一个以逗号分隔的包名称列表 这个包所依赖的。包名可以是可选的 后跟括号中的注释。评论应该包含一个 比较运算符、空格和有效的版本号。你可以 如果您的包依赖于 特定版本的 R - 例如,如果包仅适用于 R 版本 2.11.0 或更高版本,在“取决于”字段中包含“R (>= 2.11.0)”。您还可以要求对 R-devel 或 R-patched 进行特定的 SVN 修订,例如 ‘R (>= 2.14.0), R (>= r56550)’ 需要高于 R-devel 的版本 2011 年 7 月下旬(包括 2.14.0 的已发布版本)。两个都 库和 R 包检查工具使用此字段:因此它 使用不正确的语法或滥用“Depends”字段是错误的 cmets 在可能需要的其他软件上。其他依赖 (R 系统外部)应列在 “SystemRequirements”字段,可能在单独的 README 中被放大 文件。 R INSTALL 工具检查使用的 R 版本是否为 对正在安装的软件包来说足够新,以及 指定的包将被附加(检查版本后 要求)在当前包之前,都在调用库时 以及在安装期间准备延迟加载时。

    还有其他相关部分,例如 IMPORTSSUGGESTS - 请参阅文档了解详细信息。

    查看 r-forge 上的一些 R-packages 以获得一个想法。

    【讨论】:

    • 在描述文件中我把依赖字段像这样。取决于:Rcpp (>= 0.09.10),RJSONIO,stringr,RSQLite 但是在 R CMD INSTALL 期间发生错误。错误如下: ERROR: dependency ‘RJSONIO’ is not available for package ‘Mypackage’
    • 我怀疑您正在尝试从文件系统安装软件包,即install.package("pg.0.1.1.tar.gz") 这会将您的存储库设置为本地文件系统,因此它不会自动下载 RJSONIO - 请参阅?install.package
    • 所以只有直接从 CRAN 安装才有可能?
    • 回答您的确切问题 - 不。但是,它与本地软件包安装和getOptions("repo") 有关。我建议就这个具体问题提出另一个问题。
    猜你喜欢
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2012-03-01
    • 1970-01-01
    • 2021-05-12
    • 2017-10-26
    • 2011-07-26
    • 2019-06-21
    相关资源
    最近更新 更多