繁体   English   中英

如何将R6 class导入package?

[英]How to import an R6 class into a package?

我想在我的个人 package 中使用函数,该函数建立在Microsoft365R package 内部定义的名为ms_team的 R6 class 之上。现在这些函数都失败了,因为即使我导入了我需要的函数,当我尝试调用我的函数之一时依赖它们的函数,我得到一个错误,找不到这个 object。

登录错误 $get_team(team_id): object 'ms_team' not found

我试图在我的 function 中包含@importFrom Microsoft365R ms_team... ,但没有成功。 在 package 中使用依赖于外部定义的 R6 类的函数的魔法词是什么?

Microsoft365R 开发人员在这里。 我假设您使用的是 roxygen2。

要从另一个 package 导入导出的 object(任何 object,而不仅仅是 R6 类),请将

#' @importFrom pkgname objname
NULL

在您的软件包的 R 文件之一中。 在这种情况下,你会做

#' @importFrom Microsoft365R ms_team
NULL

导入整个 package 可能更容易,更健壮:

#' @import Microsoft365R
NULL

例如,请参阅此处了解我如何将 AzureGraph package 导入 Microsoft365R 本身。

从版本2.3.1 (2021 年 9 月)开始,可以使用Microsoft365R而无需搜索列表中的 package。

这意味着您不必再导入整个 package。 您现在可以将Microsoft365R添加到DESCRIPTION文件中的Imports ,并调用Microsoft365R::function() / Microsoft365R::object等函数/对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM