我正在构建一个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.
我知道Collate:
中的DESCRIPTION
字段,但是我必须写下包中的每个.R文件。随着项目规模的扩大,这非常麻烦......
我还有两个选择:
将起始函数放在行的词法末端(Z_Evaluate.R
)
或将所有类定义文件(<FileName>
)内容包装在自己的加载函数(LoadClassDefinitionsFrom<FileName>()
)中,并以正确的顺序在启动函数的开头调用它们。
对我来说,两者看起来都不是很方便。如果我没有弄错的话,Latex编译器会通过两次源代码来完成所有操作。在R中,这可能是不可行的。
处理此类问题的最佳做法是什么?