gpt4 book ai didi

r - 自己写的R包找不到自己的函数

转载 作者:行者123 更新时间:2023-12-04 17:48:36 25 4
gpt4 key购买 nike

我创建了一个包,其中包含一些对我公司有用的功能。最近,我重构了这个包,这样就有一些辅助函数不需要每个人都可以访问,而是从包的其他(导出的)函数内部调用。这些辅助函数不会导出到命名空间(在相应的 .R 文件中没有 #' @export)。

现在,当我调用其中一个“主要”(导出的)函数时,我收到错误消息(没有真正的函数名称):

Error in major_function() : could not find function "helper_function"

我在构建包方面相当新,但根据我目前的理解(来自 https://cran.r-project.org/web/packages/roxygen2/vignettes/namespace.html ),既不需要导出辅助函数,也不需要添加 #' importFrom my_package helper_function到主要函数的 .R 文件。

当我尝试这样做时,它实际上在检查包时产生了错误。我还尝试使用 my_package:::helper_function 调用辅助函数,但这导致注意到几乎永远不需要像这样从同一个包调用函数。

可能有用的信息:

只有当我调用 major_function_1 时才会发生错误,它在内部调用 major_function_2,后者调用 helper_function

最佳答案

我认为你的问题比你所说的更多。只要您的所有函数都在同一个命名空间中定义(这也意味着您的所有函数都需要存在于同一文件夹中的 .R 文件中),调用函数应该相应地找到辅助函数。我怀疑您的辅助函数以某种方式嵌套,这是导致问题的原因。

我建议重新检查您的命名空间结构,或在此处发布您的包的简单大纲。

可能想到的另一个原因是,您没有在包根目录的 NAMESPACE 文件中导出“mayor_function2”(可能您没有重新编译生成此文件的 Roxygen 文档) ,另外还有调用函数“mayor_function1”的局部影子。尝试检查它并从干净的编译中重新运行。

关于r - 自己写的R包找不到自己的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46951980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com