【问题标题】:Configuring the R console so that it stops executing a list of commands whenever one command fails配置 R 控制台,使其在一个命令失败时停止执行命令列表
【发布时间】:2017-08-13 15:07:10
【问题描述】:

我有时会在 R 控制台中粘贴要执行的命令列表。默认情况下,如果一个命令失败(即引发错误),R 控制台会指示该命令失败,然后执行后续命令。

是否有任何方法可以配置 R 控制台,使其在一个命令失败时停止执行一系列命令?

【问题讨论】:

标签: r


【解决方案1】:

运行这个 R 命令而不是粘贴:

source("clipboard")

或者如果您想查看命令和输出:

source("clipboard", echo = TRUE)

(或设置verbose 选项以避免每次都必须指定回显,即options(verbose = TRUE)

【讨论】:

  • 谢谢,这看起来也很有用。 (显然我第一次尝试source("clipboard", echo = TRUE) 时,剪贴板中有source("clipboard", echo = TRUE) :))。也适用于 PuTTY。
【解决方案2】:

一种策略是将代码包装在{ } 中,以便将代码作为单个块执行。例如,

{ceiling(quantile(rnorm(20), seq(0, 1, length.out=8))); rnorm(10)}

会运行,但是

{ceiling(quantile(rnorm(20), seq(0, 8, length.out=8))); rnorm(10)}

将出错,第二个命令rnorm(10) 将不会运行。


d.b.在设置options(error) 的 cmets 中提到。根据?options,默认设置为NULL。如果您希望代码在错误处停止并进入调试模式,您可以键入

options(error=recover)

在初始会话中或将其放入您的 .Rprofile 中,然后 R 将在遇到错误时进入调试模式。

对于上面的代码,你会看到

{ceiling(quantile(rnorm(20), seq(0, 8, length.out=8))); rnorm(10)}

quantile.default(rnorm(20), seq(0, 8, length.out = 8)) 中的错误:
[0,1] 之外的“问题”

输入帧号,或 0 退出

1: #1: 分位数(rnorm(20), seq(0, 8, length.out = 8)) 2: quantile.default(rnorm(20), seq(0, 8, length.out = 8))

【讨论】:

  • @d.b 我不经常使用它,但添加了一些文本来解决您的评论。如果你想添加一个单独的答案来添加更多细节,我会删除这个并投票给你。
猜你喜欢
  • 1970-01-01
  • 2013-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-15
相关资源
最近更新 更多