使用下面的代码我尝试重写汇总函数,以便只返回系数:
summary <- function(x)
{
UseMethod("GetFirst",x)
}
summary <- function(x)
{
return(x$Coefficient)
}
class(summary) <- "mysum"
tosum = as_tibble(c(1,2,3))
tosum
summary(tosum)
这会返回错误:
> summary(tosum)
NULL
Warning message:
Unknown or uninitialised column: 'Coefficient'.
如何阅读摘要函数的可用属性并使用s3调用?
答案 0 :(得分:0)
summary
已经是通用函数,因此您不需要UseMethod
。为了扩展其功能,您需要添加另一个适用于您想要的类的方法。
查看示例:
summary.myclass <- function(x)
{
return(x$Coefficient)
}
tosum = data.frame(Coefficient = c(1,2,3))
class(tosum) <- c('myclass', 'data.frame')
summary(tosum)
#[1] 1 2 3
这里我为summary
类定义myclass
(称为方法)的扩展名。当我在tosum
使用该类的摘要时,会调度summary.myclass
并返回列Coefficiet
。