gpt4 book ai didi

r - 用 3 个点定义 S4 方法

转载 作者:行者123 更新时间:2023-12-05 01:10:55 24 4
gpt4 key购买 nike

我正在尝试为我创建的对象定义“c”方法。

就像是

setMethod("c", 
signature(...),
definition=function (...) {
myObject = list(...)[[1]]
myObject@mySlot=lapply(list(...), FUN = function(x) slot(x, "mySlot"))
return(myObject)
}
)

问题是我无法定义 ... 的类,以便正确完成调度。
任何的想法?

最佳答案

详细说明@hadley 的评论,签名应该是你的类(class),定义应该遵循getGeneric .因此

> getGeneric("c")
standardGeneric for "c" defined from package "base"

function (x, ..., recursive = FALSE)
standardGeneric("c", .Primitive("c"))
<environment: 0x4956ab8>
Methods may be defined for arguments: x, recursive
Use showMethods("c") for currently available ones.

所以
setClass("A", representation(x="numeric"))
setMethod("c", "A", function(x, ..., recursive=FALSE) {
"here I am"
})


> c(new("A"), new("A"))
[1] "here I am"

关于r - 用 3 个点定义 S4 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14679852/

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