【发布时间】:2012-07-11 18:46:26
【问题描述】:
我正在尝试为我的类创建一个方法,该方法继承自 data.frame。我最初希望也能从 data.frame 继承“show”方法,但我也可以自己编写。我定义了我的类和“显示”方法如下:
setClass("SCvec", representation(auth = "character",
dev = "character",
sensor = "character",
channel = "character",
starttime = "character",
endtime = "character"),
contains="data.frame")
setMethod("show", signature(x="SCvec"), function(x) print(x))
当我在 R 控制台中输入 show 时,它会打印出来:
从包“methods”定义的“show”的standardGeneric
function (object)
standardGeneric("show")
<bytecode: 0x0396bee8>
<environment: 0x0393ab60>
Methods may be defined for arguments: object
Use showMethods("show") for currently available ones.
(This generic function excludes non-simple inheritance; see ?setIs)
所以看起来我不需要自己使用 StandardGeneric() 将它变成泛型。但是当我运行 setMethod("show", signature(x="SCvec"), function(x) print(x)) 行时,我得到了错误
Error in match.call(definition, call, expand.dots) :
unused argument(s) (x = c("SCvec", ""))
我已经定义了这个方法,就像我定义任何其他方法一样。为什么这个方法定义不起作用? 'show' 与其他通用函数有什么不同吗?
【问题讨论】:
标签: r show s4 generic-function