Nhìn qua S4 wiki Hadley Wickham: https://github.com/hadley/devtools/wiki/S4constructors S4 và nguyên mẫu
setClass("Person", representation(name = "character", age = "numeric"),
prototype(name = NA_character_, age = NA_real_))
hadley <- new("Person", name = "Hadley")
Làm sao chúng ta có thể thiết kế một constructor cho Person (như thế này)
Person<-function(name=NA,age=NA){
new("Person",name=name,age=age)
}
mà không làm điều này:
> Person()
Error in validObject(.Object) :
invalid class "Person" object: 1: invalid object for slot "name" in class "Person": got class "logical", should be or extend class "character"
invalid class "Person" object: 2: invalid object for slot "age" in class "Person": got class "logical", should be or extend class "numeric"
Cập nhật: setClass trả về một constructor mặc định: Person <- SetClass ("Người", ...) – ctbrown