用STOP()终止执行,但不要在R中抛出“错误”消息

时间:2018-06-19 23:04:31

标签: r error-handling

我想要一个函数,该函数将在没有数据返回时终止程序,并向用户显示一条消息,提示找不到新数据。 但是,我不希望我的函数向用户抛出“错误”消息。例如,

my_update_function <- function () {
  df <- data  # get data 
  if (nrow(df) == 0) {
   stop('\r no new data found')
   }
   else {
   # do some updates
   }
}

当前输出: my_update_function()中的错误: 找不到新数据

我的预期输出:未找到新数据

如何消除输出消息中的“错误”,但当条件为真时,程序将终止。

1 个答案:

答案 0 :(得分:0)

这将在控制台上隐藏“错误”一词,但程序仍将其视为错误。在Stop an R program without error

上引用
if (nrow(new_data) == 0) {
    message(log_date, " - ","no new_data is found ")
    opt <- options(show.error.messages=FALSE)
    on.exit(options(opt))
    stop()

}
else { # DO SOMETHING ELSE
}