【问题标题】:How to load only specific functions from a package如何仅从包中加载特定功能
【发布时间】:2012-10-30 20:09:06
【问题描述】:

我有一个使用 gdata 包中的 trim() 函数的包。从字面上看,我没有使用包中的任何其他内容,并且(正如你们中的一些人可能已经看到的那样)它覆盖了我需要的基本 R 的一些功能。

有没有办法只加载一个函数而不是整个包?

【问题讨论】:

  • 为什么不trim <- gdata::trim
  • 这不是假设 gdata 已加载以便能够做到这一点吗?
  • @mplourde 方法的缺点是,如果您将包发布到 CRAN,下载它的人不会自动为他们下载gdata(如果他们还没有)。

标签: r


【解决方案1】:

当然。只需在您的 NAMESPACE 文件 (as described here in R-exts) 中使用 importFrom 指令。

importFrom(gdata, trim)

OP 编辑​​:从 R 3.2.0 开始,现在有一个基本函数:trimws()

【讨论】:

    【解决方案2】:

    现在我明白了:从另一篇文章:这意味着包(在这种情况下为 R)可以访问包函数/对象,但用户不能不显式加载工具包,其中包括统计信息、图形等已加载并准备好为用户使用。

    所以 - 正式指定的导入(您在描述文件中指定“导入:生存”以及在 NAMESPACE 文件中指定“importFrom(survival,Surv)”确实有效,但是,没有 将 'Surv' 添加到 'export' 对象列表中,函数 'Surv' 仅对包内的代码可用,但对用户不可用(因此也对小插图中的示例不可用)。

    【讨论】:

    • 所以在 NAMESPACE 文件中将 Surv 添加到您的导出列表中:export("Surv", ...)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-24
    相关资源
    最近更新 更多