R - Rstudio - 如果生成警告/错误,让 R 播放声音

问题描述 投票:0回答:3

我正在运行一个循环遍历股票对组合列表的脚本...偶尔,由于对组合之间的数据长度不同而产生错误,脚本会停止运行,我只是将不匹配的股票从考虑中删除):

Error in model.frame.default(formula = stckY ~ stckX + 0, drop.unused.levels = TRUE) : 
  variable lengths differ (found for 'stckX')

有什么方法可以让 R / Rstudio 在出现错误消息时播放声音,以便在脚本循环时无需一直盯着屏幕而收到警报?

我可以使用以下方法线性生成声音:

beep <- function(n = 3){
    for(i in seq(n)){
        system("rundll32 user32.dll,MessageBeep -1")
        Sys.sleep(.5)
    }
}
beep()

但是我怎样才能在错误消息的情况下执行此条件呢?

r rstudio
3个回答
6
投票

基于 @frankc 答案和 @hrbrmstr 评论,一种实现此目的的方法:

install.packages("beepr")
library(beepr)
options(error = beep)

0
投票

尝试选项(错误=蜂鸣声)

在执行此操作之前,您仍然需要定义蜂鸣声。尚未验证此功能是否有效,但应该符合?选项:

'error':控制处理的函数或表达式
          非灾难性错误,例如由“停止”生成的错误
          以及信号和内部检测到的错误。如果
          option 是一个函数,是对该函数的调用,没有
          参数,生成为表达式。默认值
          为“NULL”:请参阅“停止”以了解这种情况下的行为。这
          函数“dump.frames”和“recover”提供了替代方案
          允许事后调试。注意这些需要
          指定为例如'选项(错误= utils::recover)'
          启动文件,例如“.Rprofile”。

0
投票

我建议安装“beep”,然后使用 beep(8) 发出超级马里奥兄弟的声音。也许有了之前的建议和这个,你可以得到一个好的结果。

install.packages("beepr")

[your code here]

beepr::beep(8)
© www.soinside.com 2019 - 2024. All rights reserved.