我正在尝试使用Generic方法“summary”为类“subject”创建一个方法。但是,我收到一条错误消息。你能帮我理解我做错了什么以及如何纠正它?谢谢。
setGeneric("summary")
setMethod("summary",
c(x = "subject"),
function(x){"This is summary for subject class"})
错误消息如下:
Error in match.call(definition, call, expand.dots, envir) :
unused argument (x = c("subject", ""))
我使用setMethod使用Generic方法“print”为类“subject”创建一个方法,如下所示:
setMethod("print",
c(x = "subject"),
function(x){
if (length(x$id) > 0){
paste0("Subject ID: ", unique(x$id))}
else {"NULL"}
})
执行上述代码时没有错误。我无法理解这两种情况之间的区别。
答案 0 :(得分:2)
如果用“object”替换x,则代码有效。即:
setMethod("summary",
c(object = "subject"),
function(object){"This is summary for subject class"})
这里有一些相关信息: Is 'show' a normal S4 generic function?
希望有所帮助。