如何为我的S3类实现通用函数名称,以便我可以"设置"我的对象的名称.
要检索名称,我只需将其实现为:
names.myobject <- function(x, ...){ x$y }
然后我可以这样做:
names(myobject)
但我不能用它来设置以下形式的名称:
names(myobject) <- "a"
我想的是:
names.myobject <- function(x, newname){ x$y <- newnames }
如何实现"设置"形式的名称?
从函数中找出泛型的签名; 'setter'是names<-
.
> names function (x) .Primitive("names") > `names<-` function (x, value) .Primitive("names<-")
names
并且names<-
是所谓的原始函数,方法调度用C实现,因此通常的指示是你使用S3泛型(UseMethod("foo")
在泛型的主体中)不存在.
实现模式后面的方法generic.class = function...
.请记住,setter方法的返回值必须是您已更新的对象
names.myobject <- function(x) x$y `names<-.myobject` <- function(x, value) { x$y = value; x }