我试图将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:BTW - 要创建来自sessionInfo()
的漂亮打印字符串,您可以使用:
si <- capture.output(print(sessionInfo()))
答案 0 :(得分:3)
它实际上有一个S3方法,它只是不从包名称空间导出,而是utils
包。
如果查看方法搜索的输出,您将在sessionInfo方法旁边看到一个星号,文档中说明:
如果是方法,则S3方法名称后面跟一个星号* 定义不是从包名称空间中导出的 方法已定义。
> x = methods("print")
> x[x == "print.sessionInfo"]
[1] "print.sessionInfo"
因此要查看您可以执行的方法的代码
utils:::print.sessionInfo