- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我通常为每个项目(每个项目持续数周)在一个 script.R 文件中工作。我想设置一个流程,这样每天当我打开 RStudio 时,我都可以启动一个文件,将我在控制台中看到的所有内容(输入、输出、警告)存储到一个文件中。我还希望它每天创建一个新文件。我在这里读过一些关于如何做这部分内容的讨论,但我不够聪明,无法自己将它们组合在一起。这是我到目前为止所拥有的:
sink(paste("filename.txt", strtrim(Sys.time(),10)), append=T, split=T)
x <- 1:5
y <- 2:6
z <- c(5, 8, 3, 5, 9)
reg <- lm(y ~ x) #intentional "mistake" used to produce a warning
reg <- lm(z ~ x)
summary(reg)
sink()
我认为这完成了什么:如果这是我第一次这样做,我会得到一个日志文件,该文件将所有输出捕获到一个新文件中,但如果我在 AM 中做一些工作,它将添加到现有文件中,全部关闭,并在当天晚些时候重新开始。
这没有完成什么:它不捕获输入或警告消息,而且我认为它有点笨拙。
我认为这实现了我认为的效果,我说得对吗?有没有办法修改它(或做类似的事情),这将允许我也捕获输入和警告(基本上是控制台中看到的其余内容)?
谢谢!
最佳答案
预先说明:此答案不提供输入和消息。对您来说更强大的机制是使用 R-markdown 文档:它会捕获警告等,它会在出现错误时继续,它确实包含输入等。只需使用 RStudio 的“编织文档”(甚至笔记本),你就会得到同样的效果。如果这不能让您满意并且您想坚持使用 sink
,请继续阅读。
sink
有一个参数允许保存警告和错误:
sink(file = NULL, append = FALSE, type = c("output", "message"),
split = FALSE)
...
type: character string. Either the output stream or the messages
stream. The name will be partially matched so can be
abbreviated.
你不能同时接收“输出”和“消息”,所以你需要调用 sink
两次,每种类型一次。 (它们完全分开处理,因此您也需要单独关闭它们。)
注意买者:help page警告不要下沉消息:
Sink-ing the messages stream should be done only with great care.
For that stream 'file' must be an already open connection, and
there is no stack of connections.
此外,它不支持split
,因此您不会看到任何警告或错误。 (这是一个非常重要的问题,足以阻止我为此使用它......我只是突出显示整个控制台并保存在文本编辑器中。但我知道你正在尝试自动化,所以我们将继续.)
有两种方法可以做到这一点:安全(在输出和消息之间失去同步)和未经过良好测试的可能不安全。
msgcon <- file("out1-msg.txt", open = "a")
sink("out1.txt", type = "output", append = TRUE, split = TRUE)
sink(msgcon, type = "message") # does not support split
# do your work here
a <- 1
a
stop("huh?")
sink(NULL, type = "message")
sink(NULL, type = "output")
好处是您将分别安全地收到这两种类型的消息。坏处是您将无法将特定错误/警告与代码或输出中的任何地方联系起来。如果您不介意,请坚持下去。
这种方法的问题是两个“进程”可能同时写入同一个文件。这可能会导致数据丢失或(更有可能)困惑/交错的输出。我没有仔细研究代码以查看是否会发生这种情况,也没有对它进行详尽的测试。 您已收到警告。
con <- file("out1.txt", open = "a") # use for both sinks
sink(con, type = "output", append = TRUE, split = TRUE)
sink(con, type = "message")
a <- 2
a
stop("uh-wha?")
sink(NULL, type = "message")
sink(NULL, type = "output")
您仍然需要单独打开和关闭两个 type
。
关于R - 自动创建每日文件以记录来自 RStudio 控制台的所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45985326/
我正在为我的按钮使用 onClick 功能。我的按钮代码如下所示: Button 1 Button 2 我的 JS 函数如下所示: function fadeNext(selectedId, spee
首先,我想提一下,我理解每个人在不提供至少一些试验或错误的情况下提出问题的感受,但这纯粹是一种知识需求,话虽如此,我会去提前问。 我一直无法弄清楚如何将保存在 MySQL 表中的 600-1000 个
我想做的事情有点令人困惑,而且我英语不太好,所以我先把代码贴在这里,这样你就可以很容易地理解: 以下是表单内容: Testing for Stackoverflow Option1
我学习 SDL 二维编程已有一段时间了,现在我想创建一个结合使用 SDL 和 OpenGL 的程序。我是这样设置的: SDL_Init(SDL_INIT_VIDEO); window = SDL_Cr
我创建了 2 个 data-* 标签。数据类别和数据标签。单击 href 标签后,我想复制该数据类别和数据标签以形成输入。我的代码是:
我想用 CSS 换行。我正在使用内容。 td:before { content: "Test\A Test2"; } 它不工作。如何正确
这个问题已经有答案了: Java Class that implements Map and keeps insertion order? (8 个回答) 已关闭 6 年前。 我有一个 HashMap
我正在尝试使用 JMeter 执行端到端测试。测试涉及写入SFTP文件夹并从另一个SFTP文件夹读取写入操作生成的文件。 我能够使用 JMeter SSH SFTP 插件连接到 SFTP 文件夹,并能
您好,我有带有标准服务器端 Servlet 的 GWT 客户端。 我可以从 GWT 客户端上传文件并在服务器端读取其内容 我可以将其作为字符串发送回客户端 但是 我有 GWT FormPanel与操作
我在 Plone 4.3.9 中创建了一个自定义类型的灵巧性,称为 PersonalPage,必须只允许在特定文件夹中使用 成员文件夹/用户文件夹 . 在他的 FTI 中,默认情况下 False .
在新(更新)版本的应用程序中更改小部件布局的最佳做法是什么?当新版本提供更新、更好的小部件时,如何处理现有小部件? 最佳答案 我认为您必须向用户显示一个弹出窗口,说明“此版本中的新功能”并要求他们重新
在我的应用程序中,我使用支持 View 寻呼机和 PagerTabStrip。进入查看寻呼机我有一些 fragment ,进入其中一个我正在使用支持卡片 View 。运行应用程序后,所有卡片 View
我有以下布局文件。基本上我有谷歌地图,在左上角我有一个 TextView,我需要在其中每 15 秒保持一次计数器以刷新 map 。布局很好。
我使用如下结构: HashMap > > OverallMap 如果我这样做: OverallMap . clear ( ) clear() 丢弃的所有内容(HashMap 对象、Integer 对
我在数据库中有 1000 张图像。在页面加载时,我随机显示 60 张图片,当用户滚动时,我通过 AJAX 请求添加 20 张图片。 第一种方法 我所做的是将所有图像加载到一个容器中,然后隐藏所有图像并
我正在使用 woocommerce 创建一个网上商店。 我想在每个产品上添加一个包含产品信息的表格,例如颜色、交货时间等等。 但是当我添加这张表时。本产品消失后的所有内容。 我的表的代码: td {
This question already has an answer here: What does an empty value for the CSS property content do?
因此,我正在与我的 friend 一起为 Google Chrome 开发一个扩展程序,对于大多数功能(即日历、设置等),我们打开一个模式,这样我们就不必重定向到另一个页面。当您在内容之外单击时,我们
我将可变高度的 CSS 框设置为在更大的 div 中向左浮动。现在我想添加一个标题,其中文本在框的左侧垂直显示(旋转 90 度),如下面的链接所示(抱歉还不能发布图片)。 http://imagesh
相关页面位于 www.codykrauskopf.com/circus 如果您查看我页面的右侧,在半透明容器和浏览器窗口边缘之间有一个间隙。我看了看,出于某种原因,wrap、main、content
我是一名优秀的程序员,十分优秀!