【发布时间】: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 :)