R RefClass Использование полей, содержащих инициализацию с критериями остановки / избегать вызова для инициализации - PullRequest
0 голосов
/ 07 июня 2018

Возможно, я просто не понимаю, как работают RefClasses, но есть ли способ инициализировать поля в классе в методе constructor / initialize, а не раньше?См. Пример ниже, где, когда я пытаюсь собрать, получаю ошибку:

Ошибка в .Object $ initialize (...): необходимо указать a или b

A <- setRefClass("A",
     fields = list(
       m_a = "numeric",
       m_b = "character"
     ),
     methods = list(
      initialize = function(t_a,t_b,...){
        if(missing(t_a) && missing(t_b)){
          stop("a or b must be provided")
        }
        if(!missing(t_a)){
          m_a <<- t_a
        }
        if(!missing(t_b)){
          m_b <<- t_b
        }
      }
      )
)


B <- setRefClass("B",
     fields = list(
       m_c = "A"
     ),
     methods = list(
       initialize = function(t_c,...){
          m_c <<- A(t_a=1)
       }
     )
)

bTest <- B(TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...