我想在R中做基本的对象组合,我正面临着这个简单的问题。我有2个R5课程,“Lambda”和“Composition”
“Composition”类具有类“Lambda”的属性。无法创建“组合”类:".Object$initialize(...) : argument "lambda" is missing, with no default"
如果lambda在initialize方法中有一个默认值,它就可以工作:initialize = function(lambda=1){
但我不希望这样。
setRefClass(
"Lambda",
fields = c(
lambda = "numeric"
),
methods=list(
initialize = function(lambda){
check_lambda (lambda)
lambda <<- lambda
},
check_lambda = function(new_lambda){
print ("checking...")
return(T)
}
)
)
setRefClass(
"Composition",
fields = c(
object_lambda = "Lambda"
),
methods=list(
initialize = function(object_lambda){
object_lambda <<- object_lambda
}
)
)
感谢您的帮助。
答案 0 :(得分:0)
我找到了一个问题的解决方案:将字段设置为我的班级“作文”的“任意”:
setRefClass(
"Composition",
fields = c(
object_lambda = "ANY"
),
methods=list(
initialize = function(object_lambda){
object_lambda <<- object_lambda
}
)
)