我想知道如何让我summary(object)
使用我正在创建的包中的自定义类。例如,如果您运行以下命令:
testfunction <- function(x) {
x.squared <- x^2
x.double <- 2*x
x.triple <- 3*x
result <- list(squared = x.squared, double = x.double, triple = x.triple)
class(result) <- "customclass"
result
}
x <- rnorm(100)
output <- testfunction(x)
summary(output)
你会看到输出很无用。但是,我似乎无法找到如何控制此输出。如果有人可以指导我,我会感激不尽。
(当然,我可以制作一个自定义的摘要功能,例如summary.Custom(object)
,但我更喜欢让常规summary
方法直接使用。
答案 0 :(得分:4)
编写一个名为summary.customclass
的函数,其参数与summary
相同(请参阅args(summary)
)。
您正在做的是为S3类创建summary
的方法。您可能想要阅读S3类。
答案 1 :(得分:2)
没有summary.list
功能。如果您想使用summary.default
功能,则需要使用lapply
或sapply
:
> lapply(output, summary)
$squared
Min. 1st Qu. Median Mean 3rd Qu. Max.
0.000013 0.127500 0.474100 1.108000 1.385000 11.290000
$double
Min. 1st Qu. Median Mean 3rd Qu. Max.
-6.7190 -1.0480 0.4745 0.3197 1.8170 5.1870
$triple
Min. 1st Qu. Median Mean 3rd Qu. Max.
-10.0800 -1.5720 0.7117 0.4796 2.7260 7.7800
或者:
> sapply(output, summary)
squared double triple
Min. 1.347e-05 -6.7190 -10.0800
1st Qu. 1.275e-01 -1.0480 -1.5720
Median 4.741e-01 0.4745 0.7117
Mean 1.108e+00 0.3197 0.4796
3rd Qu. 1.385e+00 1.8170 2.7260
Max. 1.129e+01 5.1870 7.7800