首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当从另一个包中调用mgcv时,无法从mgcv访问"ldTweedie“函数。

当从另一个包中调用mgcv时,无法从mgcv访问"ldTweedie“函数。
EN

Stack Overflow用户
提问于 2020-04-02 12:37:12
回答 1查看 117关注 0票数 6

我在自己的包中使用mgcv包,到目前为止一切都很好。但是,我尝试将Tweedie系列对象("Tweedie()“、"tw()")引入到我的包中,但是在尝试使用后者时,我遇到了一个错误。

该函数就这样简单(在这里简化):

代码语言:javascript
复制
#' @importFrom mgcv tw
#'
.FamilyLink <- function(link) {
       familyObject <- tw(link = link)
       return(familyObject)
}

我把这个放在命名空间文件中

代码语言:javascript
复制
importFrom(mgcv,tw)

因此,在安装了我调用的函数(非导出的包,它通常用于我的包中的其他功能)之后

代码语言:javascript
复制
fam <- MyPackage:::.FamilyLink("log")
fam$aic(1, 1, NULL, 1, 1)
Error in ldTweedie(y, mu, p = p, phi = scale) : 
  could not find function "ldTweedie"

然后我试着添加:

代码语言:javascript
复制
importFrom(mgcv,ldTweedie)
importFrom(mgcv,tw)

安装了软件包,也遇到了同样的问题。但是,如果我使用devtools加载包:

代码语言:javascript
复制
devtools::load_all("MyPackage")
fam <- .FamilyLink("log")
fam$aic(1, 1, NULL, 1, 1)
[1] 4.05723

一切都很好。所以我想知道我在这里是不是做错了什么,或者我如何通过安装而不用使用load_all()来使我的包/功能工作?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 11:12:03

不确定这是否是最优雅的解决方案,但是在这里的帮助下,R package - Transferring environment from imported package的解决方案是从mgcv再导出ldTweedie函数。

dplyr re-exporting %>%

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60991755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档