R 调用哪个函数将输出打印到控制台(例如,对于会话信息)



我试图将sessionInfo的漂亮打印(格式化(输出存储在字符变量中,并找到了使用 pretty.si <-capture.output(sessionInfo()) 的解决方案,该解决方案会产生字符串向量(每行一个元素(。

只是出于好奇:

R 调用哪个函数来获取漂亮的打印输出(例如我找不到 S3 print.sessionInfo函数(?

如果我查看sessionInfo的实现,它只会将未格式化的结果作为列表或向量列表返回:

> sessionInfo
function (package = NULL) 
{
    z <- list()
    z$R.version <- R.Version()
    z$platform <- z$R.version$platform
    # ... omitted code ...
    class(z) <- "sessionInfo"
    z
}

编辑 1:顺便说一句 - 要从sessionInfo()创建漂亮的打印字符串,您可以使用:

si <- capture.output(print(sessionInfo()))

它实际上有一个 S3 方法,只是它没有从包命名空间导出,这将是utils包。

如果您浏览方法搜索的输出,您将在 sessionInfo 方法旁边看到一个星号,文档说它是:

如果该方法,则 S3 方法名称后跟星号 * 定义不会从包命名空间导出,其中 方法已定义。

> x = methods("print")
> x[x == "print.sessionInfo"]
[1] "print.sessionInfo"

因此,要查看您可以执行的方法的代码

utils:::print.sessionInfo

相关内容

最新更新