【发布时间】:2017-08-13 15:07:10
【问题描述】:
我有时会在 R 控制台中粘贴要执行的命令列表。默认情况下,如果一个命令失败(即引发错误),R 控制台会指示该命令失败,然后执行后续命令。
是否有任何方法可以配置 R 控制台,使其在一个命令失败时停止执行一系列命令?
【问题讨论】:
-
有一些重叠,但我不认为它是重复的。
标签: r
我有时会在 R 控制台中粘贴要执行的命令列表。默认情况下,如果一个命令失败(即引发错误),R 控制台会指示该命令失败,然后执行后续命令。
是否有任何方法可以配置 R 控制台,使其在一个命令失败时停止执行一系列命令?
【问题讨论】:
标签: r
运行这个 R 命令而不是粘贴:
source("clipboard")
或者如果您想查看命令和输出:
source("clipboard", echo = TRUE)
(或设置verbose 选项以避免每次都必须指定回显,即options(verbose = TRUE))
【讨论】:
source("clipboard", echo = TRUE) 时,剪贴板中有source("clipboard", echo = TRUE) :))。也适用于 PuTTY。
一种策略是将代码包装在{ } 中,以便将代码作为单个块执行。例如,
{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))
【讨论】: