0
我正在嘗試覆蓋基本(非S3)方法,爲自定義R對象提供colnames
方法。我想用S3而不是S4做到這一點。替代基本分配功能
對於colnames
訪問,這可以通過設置基本功能是默認方法,然後提供一個方法,我的類來實現:
colnames <- function(x, ...) UseMethod("colnames")
colnames.default <- base::colnames
colnames.myclass <- function(x, ...) {
# some code here
}
然而,如何將一個覆蓋setter方法。我希望東西這樣應該工作?
"colnames<-" <- function(x, value) UseMethod("colnames<-")
"colnames<-.default" <- "base::colnames<-"
"colnames<-.myclass" <- function(x, value) {
print("Setting colnames for myclass")
# Some code
}
然而,這似乎不能正確調用基函數常規矩陣:
> test <- matrix(1:10, 5)
> colnames(test) <- c("a", "b")
Error in UseMethod("colnames<-") :
no applicable method for 'colnames<-' applied to an object of class "c('matrix', 'integer', 'numeric')"