0

我正在构建一个 R 包,并且有几个文件只包含类定义(R6Classes,但我确信这适用于任何类型)。在构建包时,由于未找到某些定义而出现错误 - 例如,文件未按必要的顺序加载:

Error in R6Class("MyChildClass", inherit = DataSource, 
                  public = list(initialize = function(...) { 
                    (from MyChildClass.R#1) : 
                      object 'DataSource' not found
                    Calls: <Anonymous> ... source_many -> source_one 
                           -> eval -> eval -> R6Class
Execution halted

Exited with status 1.

我知道 .R 中的Collate:字段DESCRIPTION,但我必须写下包中的每个 .R 文件。随着项目规模的扩大,这非常麻烦......

我想到了另外两个选择:

  • 将起始函数放在文件中的行尾 ( Z_Evaluate.R)

  • 或者将所有类定义文件 () 内容包装<FileName>在它们自己的加载函数 ( LoadClassDefinitionsFrom<FileName>()) 中,并在启动函数的开头以正确的顺序调用它们。

两者对我来说似乎都不是很方便。如果我没记错的话,Latex 编译器会两次检查源代码以确保一切正常。这在 R 中可能是不可行的。

处理此类问题的最佳做法是什么?

4

0 回答 0