Create a class.
setClass("professor", representation(name = "character", field = "character", age = "numeric"))
Create a concrete object for the class.
derman <- new("professor", name = "Derman", field = "quant", age = 71)
Saturday, May 30, 2015
Create a class.
setClass("professor", representation(name = "character", field = "character", age = "numeric"))
Create a concrete object for the class.
derman <- new("professor", name = "Derman", field = "quant", age = 71)
Print the whole object.
derman
## An object of class "professor" ## Slot "name": ## [1] "Derman" ## ## Slot "field": ## [1] "quant" ## ## Slot "age": ## [1] 71
Access specific slot/member variable.
derman@field
## [1] "quant"
Overriding the default show method.
setMethod("show", signature(object = "professor"), function(object){ print(paste("Hello, I am Professor", object@name)) })
## [1] "show"
derman
## [1] "Hello, I am Professor Derman"
First make a generic function.
setGeneric("changeJob", function(object, newJob) { standardGeneric("changeJob") })
## [1] "changeJob"
Then dispatch a specific method for the professor class.
setMethod("changeJob", signature(object = "professor"), function(object, newJob) { object@field = newJob object })
## [1] "changeJob"
derman@field
## [1] "quant"
derman <- changeJob(derman, "art") derman@field
## [1] "art"
Or, if you work with standardized variable names in large quantity, data frame might be a nicer choice.
name <- c("derman", "duffie") field <- c("physics", "finance") professor <- data.frame(name, field) professor
## name field ## 1 derman physics ## 2 duffie finance
There are lots of cool functions/packages to facilitate your work with data frame…
Data structures in R:
http://adv-r.had.co.nz/Data-structures.html
S4 and object-oriented design in R:
http://adv-r.had.co.nz/S4.html
General introduction to R:
http://cran.r-project.org/doc/manuals/r-release/R-intro.html