如何为我的S3类实现通用函数名称,以便我可以“设置”我的对象的名称。
要检索名称,我只需将其实现为:
names.myobject <- function(x, ...){
x$y
}
然后我可以做:
names(myobject)
但我不能用它来设置名称:
names(myobject) <- "a"
我想的是:
names.myobject <- function(x, newname){
x$y <- newnames
}
如何实现“设置”形式的名称?
答案 0 :(得分:5)
从函数中找出泛型的签名; &#39; setter&#39;是names<-
。
> names
function (x) .Primitive("names")
> `names<-`
function (x, value) .Primitive("names<-")
names
和names<-
是所谓的原始函数,方法调度用C实现,因此通常表示您正在使用S3泛型(UseMethod("foo")
in通用的主体不存在。
按照模式generic.class = function...
实施方法。请记住,setter方法的返回值必须是您已更新的对象
names.myobject <- function(x) x$y
`names<-.myobject` <- function(x, value) { x$y = value; x }