我在我的 R 包中用它们自己的脚本定义了三个不同的 S4 类。其中一个类使用其他两个类。
我看到
devtools::load_all()
按字母顺序加载脚本,因此如果一个脚本依赖于另一个按字母顺序排列的脚本,则可能会出现问题。观察:
示例脚本
a.r
:
setClass("a", slots = c(name = "character"))
示例脚本
b.r
setClass("b", slots = c(name = "character", a = "a", c = "c"))
示例脚本
c.r
:
setClass("c", slots = c(name = "character"))
当我运行
devtools::load_all()
时,出现以下警告:
Warning messages:
1: undefined slot classes in definition of "b": c(class "c")
我不想重命名我的脚本只是为了根据我希望它们加载的时间按字母顺序排列它们。
我不想在单个脚本中定义这些类,因为我想让代码更加模块化。
如何确保定义依赖类的脚本可以访问其他类:
source()
,因为这将从该脚本中导入不需要的其他函数、对象、变量。在
python
中,这个比较琐碎。一种使用如下语法:
from <relative path to .py file that defines those objects> import <desired objects>
在
R
中,我在原地打转,试图完成类似的事情。