如何获取“摘要”以在R中使用自定义类

hej*_*seb 6 r package

我想知道如何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)
Run Code Online (Sandbox Code Playgroud)

您会看到输出非常无用。但是,我似乎找不到如何控制此输出的方法。如果有人可以引导我去做某事,我将不胜感激。

(当然,我可以制作一个自定义的汇总函数,例如summary.Custom(object),但是我更希望常规summary方法可以直接工作。

Spa*_*man 6

编写一个函数summary.customclass,该函数具有与相同的参数summary(参见args(summary)参考资料)。

您在这里所做的就是summary为S3类创建一个方法。您可能想阅读S3类。

  • 由于这是针对软件包的,因此值得一提的是NAMESPACE文件;(a)由于摘要是在基本软件包中定义的,因此在使用前无需导入泛型;(b)该方法需要使用\ S3method(摘要,自定义类)进行注册和导出;(c)该方法需要在手册页上使用\ alias {summary.customclass}和使用部分\ S3method {summary} {customclass}(object,...)进行文档记录。在RShowDoc(“ R-exts”)`中对此进行了描述。同样值得说明的是,将使用“ summary(output)”而不是方法的全名来调用此方法。 (3认同)