gpt4 book ai didi

r - 如何实现 S3 类的名称?

转载 作者:行者123 更新时间:2023-12-04 09:42:51 24 4
gpt4 key购买 nike

如何为我的 S3 类实现通用函数名称,以便我可以“设置”对象的名称。

为了检索名称,我简单地将其实现为:

names.myobject <- function(x, ...){
x$y
}

然后我可以做:

names(myobject)

但我不能用它来设置以下形式的名称:

names(myobject) <- "a"

我正在考虑这样的事情:

names.myobject <- function(x, newname){
x$y <- newnames
}

如何实现名称的“集合”形式?

最佳答案

从函数中找出泛型的签名; “二传手”是 names<- .

> names
function (x) .Primitive("names")
> `names<-`
function (x, value) .Primitive("names<-")

namesnames<-是所谓的原始函数,方法分派(dispatch)是用 C 实现的,因此通常表明您正在使用 S3 泛型(UseMethod("foo") 在泛型主体中)并不存在。

按照模式 generic.class = function... 实现方法。请记住,setter 方法的返回值必须是您已更新的对象

names.myobject <- function(x) x$y
`names<-.myobject` <- function(x, value) { x$y = value; x }

关于r - 如何实现 S3 类的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34060433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com