【问题标题】:can't find a function from loaded package无法从加载的包中找到函数
【发布时间】:2021-08-17 12:35:29
【问题描述】:

我创建了一个带有个人功能的本地包,以便在 R 中轻松使用。其中一个旨在用于包装函数中的lidR 包(即grid_metrics)。出于这个原因,我将this script 的方案作为参考,同时导出长名称(例如my_metrics(param1, param2,...))和懒惰的名称(例如.my_metrics),因为我真的很喜欢它的易用性。

不过,如果我加载我的包,然后调用惰性函数

library(mypackage)
test = grid_metrics(las, .my_metrics, 20)

它不起作用,所以我必须通过从文件中运行它的代码来将函数加载到内存中。在这个阶段,我可以以两种形式使用它。

在 NAMESPACE 文件中,我可以看到两个表单都已导出,所以我最后的猜测是这可能与 lazyeval 有某种关系,但我不明白。

【问题讨论】:

  • 加载包后看到ls("package:mypackage")的输出中的函数了吗?
  • 是的,我看到它带有通用名称(即 my_metrics)
  • 你在创建包时有@exported你的函数吗?如果您使用roxygen2 制作包裹。
  • 也许是愚蠢的评论,但 grid_metrics 和您在示例中提供的名称不同 (gridmetrics)
  • 是的,我做了@andschar,不,那只是一个错字@elielink :)

标签: r lazyeval


【解决方案1】:

问题似乎与包含lidR 包的DESCRIPTION 部分有关。自从我从 Imports 移动到 Depends 后,问题就解决了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-09-22
    • 2021-08-05
    • 2018-01-15
    相关资源
    最近更新 更多