我正在尝试使用通用方法“摘要”为“主题”类创建一个方法。但是,我收到一条错误消息。你能帮我理解我做错了什么以及如何纠正吗?谢谢你。
setGeneric("summary")
setMethod("summary",
c(x = "subject"),
function(x){"This is summary for subject class"})
Run Code Online (Sandbox Code Playgroud)
错误消息如下:
Error in match.call(definition, call, expand.dots, envir) :
unused argument (x = c("subject", ""))
Run Code Online (Sandbox Code Playgroud)
我已经使用 setMethod 使用通用方法“print”为类“subject”创建了一个方法,如下所示:
setMethod("print",
c(x = "subject"),
function(x){
if (length(x$id) > 0){
paste0("Subject ID: ", unique(x$id))}
else {"NULL"}
})
Run Code Online (Sandbox Code Playgroud)
上述代码执行没有错误。我不明白这两种情况有什么区别。
如果 x 替换为“对象”,则代码有效。IE:
setMethod("summary",
c(object = "subject"),
function(object){"This is summary for subject class"})
Run Code Online (Sandbox Code Playgroud)
这里有一些相关信息: “显示”是正常的 S4 通用函数吗?
希望有帮助。