R 如何写一个“";“读者友好”;将sessionInfo()转换为文本文件

R 如何写一个“";“读者友好”;将sessionInfo()转换为文本文件,r,R,我想将“sessionInfo()”的输出保存到一个文本文件中。使用“write()”失败,因为“list()无法由'cat()'处理”。然后我尝试了ascii=T的“save()”,但结果文件并没有真正的帮助 我想有一个文本文件中的输出。有没有简单、直接的方法可以做到这一点?将屏幕输出捕获到字符向量中,然后使用writeLines writeLines(capture.output(sessionInfo()), "sessionInfo.txt") sessionInfo.txt: R

我想将“sessionInfo()”的输出保存到一个文本文件中。使用“write()”失败,因为“list()无法由'cat()'处理”。然后我尝试了ascii=T的“save()”,但结果文件并没有真正的帮助


我想有一个文本文件中的输出。有没有简单、直接的方法可以做到这一点?

将屏幕输出捕获到字符向量中,然后使用
writeLines

writeLines(capture.output(sessionInfo()), "sessionInfo.txt")

sessionInfo.txt:

R version 3.0.2 (2013-09-25)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
 [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

loaded via a namespace (and not attached):
[1] compiler_3.0.2 tools_3.0.2 

您可能需要使用
devtools
包中的
session\u info()
。在这种情况下,您可以使用
sink()

库(“devtools”)
图书馆(“knitr”)

my_session_info如前所述,您可以使用
devtools::session_info()
获取更易于处理的对象。然后我使用
yaml::write_yaml()
(或者
jsonlite::write_json()
)将对象写入机器可读和人类可读的版本。例如:

library(magrittr)
library(devtools)
library(yaml)

session_info() %>%
    write_yaml("./path/to/file.yaml")

似乎我们不需要writeLines(),因为我们可以直接指定要捕获的输出文件。output()函数

sessionInfo() %>% capture.output(file="session_info.txt")

对谢谢--我现在没有使用capture.output()函数。谢谢!工作也很好。+1用于
devtools::session\u info
。它很容易阅读,因为它是按字母顺序排列的。它还有一些不错的附加功能,比如从github或bitbucket安装的包的提交哈希。通过我的方法,我最终给出了一个相关问题的答案。
library("devtools")
library("knitr")

my_session_info <- devtools::session_info()

writeLines(text = {
    paste(sep = "\n", collapse = "",
          paste0(rep("-", 80), collapse = ""),
          paste(paste0(rep("-", 32), collapse = ""),
                "R environment",
                paste0(rep("-", 33), collapse = "")),
          paste0(rep("-", 80), collapse = ""),
          paste(knitr::kable(data.frame(setting = names(my_session_info$platform),
                                  value = as.character(my_session_info$platform))), collapse = "\n"),
          paste0(rep("-", 80), collapse = ""),
          paste(paste0(rep("-", 35), collapse = ""),
                "packages",
                paste0(rep("-", 35), collapse = "")),
          paste0(rep("-", 80), collapse = ""),
          paste(knitr::kable(my_session_info$packages), collapse = "\n")
          )
}, con = "session_info.txt")
library(magrittr)
library(devtools)
library(yaml)

session_info() %>%
    write_yaml("./path/to/file.yaml")
sessionInfo() %>% capture.output(file="session_info.txt")