1) エラーの場所がわかりません:
Error in args[[1]] : subscript out of bounds
次のコードを実行しようとすると、次のようになります。
Part.initialize<-function(...){
args<-list(...)
.self$var1 <- if(is.null(args[["var1"]])) vector() else args[["var1"]]
.self$var2 <- if(is.null(args[["var2"]])) character() else as.character(args[["var2"]])
.self
}
Part<-setRefClass(Class = "Part"
,fields = c(var1 = "ANY", var2 = "character")
,methods = list(initialize=Part.initialize))
A.initialize<-function(...){
args<-list(...)
.self$var1 <- if(is.null(args[["var1"]])) vector() else args[["var1"]]
.self$var2 <- if(is.null(args[["var2"]])) character() else as.character(args[["var2"]])
.self$var3 <- if(is.null(args[["var3"]])) list() else as.list(args[["var3"]])
.self
}
A<-setRefClass(Class = "A"
,contains = "Part"
,fields = list(var3 = "list")
,methods = list(initialize=A.initialize))
2) 1 行だけ追加する必要があるようにコードを整理することは可能ですか?
.self$var3 <- if(is.null(args[["var3"]])) list() else as.list(args[["var3"]])
クラス A の初期化関数の場合、残りは親クラスの Part? から取得されます。