【问题标题】:how to save the console in R to a file?如何将R中的控制台保存到文件中?
【发布时间】:2020-06-23 10:28:04
【问题描述】:

又是我,我是 R 的初学者,但不知何故为我的论文摸索着。我已经运行了一堆回归并使用 Stargazer 将它们制成表格。现在我需要与我的一个朋友分享所有这些结果(glm 模型/它们的摘要/系数和置信区间以及观星者表......基本上所有东西都在我的控制台中)来讨论,但我认为必须有一个比 1)从我的控制台中截屏或 2)复制和粘贴控制台并因此破坏格式更有效的方法。有人对此有什么建议吗?

下面是我的一些代码(其余的只是相同内容的变体)以防万一!

Mod4 <- glm(`HC Annual Total` ~ `state population`
           + Year + `Trump Presidency`, data = thesis.data, family = poisson())
summary(Mod4)

#pulling the coefs out, then add exp for what reason I don't remember
exp(coef(Mod4))

#finding the confidence intervals
exp(confint(Mod4))

#Using stargazer to turn Mod4 into a cleaner table
library(stargazer)

stargazer(Mod4, type="text", dep.var.labels = c("Hate Crimes"),
          covariate.labels = c("State Population", "Year", "Trump Presidency"),
          out = "models.txt")

【问题讨论】:

  • 尝试在 RMarkdown 中创建一个文档:rmarkdown.rstudio.com
  • 也支持使用R markdown的建议。你的问题听起来完全地就像是 Rmd 发明的主要用例......

标签: r regression glm


【解决方案1】:

如果你赶时间,你可以试试sink,它可以把控制台输出放到一个简单的.txt文件中

sink(file="my_code.txt")

summary(fit <- lm(mpg ~ hp, mtcars))
stargazer::stargazer(fit, type="text")

sink()

my_code.txt 可以在getwd() 中找到。

Rmarkdown,正如 cmets 所建议的那样,可能是更有吸引力的解决方案。

【讨论】:

  • 在 sink 命令之后,你不会在命令行上看到任何其他命令的输出,所以这有点冒险,除非用户确切知道该做什么。
  • @dash2 这并不完全正确,因为在第二个空sink() 之后将重新建立正常行为。但不管你说了什么。
【解决方案2】:

savehistory()是你的朋友:

savehistory(file = "my-code.txt")

然后您可以随意编辑代码。

或者,在 RStudio 中,您可以使用历史记录窗格并将相关位复制并粘贴到文本文件中。

如果一个完整的 rmarkdown 文档是多余的,你可以尝试使用 knitr::spin() 来编译你的代码。

最后:

  • 以后一定要写脚本。

在项目开始时最好考虑可重复性,而不是在项目结束时作为附加组件。在控制台上运行精心编写的脚本比将曲折的控制台输入变成有用的脚本要容易得多。一个好的工作流程是在控制台上尝试一些事情,然后在知道自己在做什么之后,在脚本中添加一行。

【讨论】:

  • savehistory 只是保存代码,而不是输出。这个问题看起来像 OP 想在控制台中分享他的输出。
【解决方案3】:

我认为reprexrmarkdownsink 之间的中间解决方案。首先,确保您的 R 脚本可以在没有任何错误的情况下执行。然后使用以下代码:

library(reprex)
r.file <- "path/to/Rscript/test.R" ## path to your R script file
reprex(input = r.file, outfile = NA)

在你的 R 脚本文件目录下会创建四个文件,即

  1. test_reprex.R
  2. test_reprex.html
  3. test_reprex.md
  4. test_reprex.utf8.md

htmlmd 文件包含原始 R 脚本中的代码及其输出。您可以与他人共享,他们无需运行任何代码即可看到输出。

html 文件如下所示:

【讨论】:

    猜你喜欢
    • 2011-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多