2016-01-22 26 views
0

我想在R中做基本的對象組合,我正面臨着這個簡單的問題。我有2個R5類,「Lambda」和「Composition」。
「Composition」類具有「Lambda」類的屬性。無法創建類「組合」:".Object$initialize(...) : argument "lambda" is missing, with no default" 如果lambda在初始化方法中有一個默認值:initialize = function(lambda=1){ ,但我不希望這樣。參考R中的類和對象組成

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

我找到了解決我的問題:設置字段爲「ANY」我的課「作文」的:

setRefClass(
    "Composition", 
    fields = c(
    object_lambda = "ANY" 
), 
    methods=list(
    initialize = function(object_lambda){ 
     object_lambda <<- object_lambda 
    } 
) 
)