3
比方說,我有一個看起來像這樣寫作方法類
obj <- list()
obj$title <- "Hello"
obj$data <- data.frame(c(1,2,3,4,5),c(5,4,3,2,1))
class(obj) <- "myclass"
我知道我可以寫在類方法的結構:
myfunction <- function(obj,...) {
UseMethod("myfunction")
}
myfunction.myclass <- function(obj,...) {
# magic
}
但我會怎麼寫根據對象的類,包含在對象中的數據的方法。我的意思是不必把它全部寫在同一個函數中。像那種...
myfunction.myclass.data.frame <- function(obj,...) {
# do something if class(obj$data) == "data.frame"
}
myfunction.myclass.character <- function(obj,...) {
# do something if class(obj$data) == "character"
}
myfunction.myclass.numeric <- function(obj,...) {
# do something if class(obj$data) == "numeric"
}
你能保持鏈接的類以同樣的方式,如果你已經被以類似的方式對待那些需要其他對象? 'myfunction.myclass.myotherclass < - function(obj,...)UseMethod('myfunction.myclass.myotherclass,obj $ something_else)' –
對此的回答是肯定的。 –