如何将 R6 class 导入包中?
How to import an R6 class into a package?
我想在我的个人包中使用函数,该包建立在 Microsoft365R
包内定义的名为 ms_team
的 R6 class 之上。现在这些函数都失败了,因为即使我导入了我需要的函数,当我尝试调用一个依赖它们的函数时,我得到一个错误,指出找不到这个对象。
Error in login$get_team(team_id) : object 'ms_team' not found
我试图在我的函数中包含 @importFrom Microsoft365R ms_team ...
,但没有成功。在包中使用依赖于外部定义的 R6 classes 的函数的魔法词是什么?
此处为 Microsoft365R 开发人员。我假设您使用的是 roxygen2。
要从另一个包中导入导出的对象(任何对象,而不仅仅是 R6 class),请输入
#' @importFrom pkgname objname
NULL
在您的包的一个 R 文件中。在这种情况下,你会做
#' @importFrom Microsoft365R ms_team
NULL
虽然导入整个包可能更容易,也更可靠:
#' @import Microsoft365R
NULL
例如,请参阅 here 了解我如何将 AzureGraph 包导入 Microsoft365R 本身。
从版本 2.3.1
(2021 年 9 月)开始,可以使用 Microsoft365R
而无需搜索列表中的软件包。
这意味着您不必再导入整个包。您现在可以在 DESCRIPTION
文件中将 Microsoft365R
添加到 Imports
,并像 Microsoft365R::function()
/ Microsoft365R::object
.
一样调用 functions/objects
我想在我的个人包中使用函数,该包建立在 Microsoft365R
包内定义的名为 ms_team
的 R6 class 之上。现在这些函数都失败了,因为即使我导入了我需要的函数,当我尝试调用一个依赖它们的函数时,我得到一个错误,指出找不到这个对象。
Error in login$get_team(team_id) : object 'ms_team' not found
我试图在我的函数中包含 @importFrom Microsoft365R ms_team ...
,但没有成功。在包中使用依赖于外部定义的 R6 classes 的函数的魔法词是什么?
此处为 Microsoft365R 开发人员。我假设您使用的是 roxygen2。
要从另一个包中导入导出的对象(任何对象,而不仅仅是 R6 class),请输入
#' @importFrom pkgname objname
NULL
在您的包的一个 R 文件中。在这种情况下,你会做
#' @importFrom Microsoft365R ms_team
NULL
虽然导入整个包可能更容易,也更可靠:
#' @import Microsoft365R
NULL
例如,请参阅 here 了解我如何将 AzureGraph 包导入 Microsoft365R 本身。
从版本 2.3.1
(2021 年 9 月)开始,可以使用 Microsoft365R
而无需搜索列表中的软件包。
这意味着您不必再导入整个包。您现在可以在 DESCRIPTION
文件中将 Microsoft365R
添加到 Imports
,并像 Microsoft365R::function()
/ Microsoft365R::object
.