我正在宣布使用以下课程:
setRefClass("XLSXFile",
fields = list(
wb= "workbook",
sheet= "character",
at.line= "numeric"
)
)
代码无法编译。我收到错误:
Error in .local(.Object, ...) :
argument "filename" is missing, with no default
由于以下行而生成错误:
wb= "workbook",
如何在类中声明工作簿字段? 解释器尝试调用哪个函数需要filename参数?我猜它在loadWorkbook中,因为我正在使用XLConnect但是如何在声明类时提供参数?
答案 0 :(得分:0)
是的,看起来ref class实例首先被创建为空,即通过调用默认构造函数来构造字段,这意味着错误是由于:
new('workbook')
Error in .local(.Object, ...) :
argument "filename" is missing, with no default
您可以使用ANY类型:
XLSXFile <- setRefClass("XLSXFile",
fields = list(
wb = "ANY",
sheet= "character",
at.line= "numeric"
)
)
或者可以使用这种方法使用字段构造函数:
XLSXFile <- setRefClass("XLSXFile",
fields = list(
wb = function(x) {
message('workbook accessor/setter');
# build or set the field
},
sheet= "character",
at.line= "numeric"
)
)