【问题标题】:Create my own warning message outside a function?在函数之外创建我自己的警告消息?
【发布时间】:2017-02-17 15:37:14
【问题描述】:

根据this 之类的帖子,这应该很简单,但不知何故我无法让它工作。这个例子有什么问题?

x<-1
y<-0
if(x>y){warning("careful, one is greater than zero!")}

它适用于stop():

if(x>y){stop("careful, one is greater than zero!")}

所以要么我犯了一个简单的语法错误,要么警告不应该在函数之外使用?

【问题讨论】:

  • 究竟是什么不工作?它似乎对我有用......
  • 也许你没有启用显示警告?
  • 第一个什么都不返回。第二个显示警告。
  • 所以对您来说,第一个实际上在您运行该行后会在控制台中返回其中一条红色警告消息?

标签: r warnings


【解决方案1】:

您的代码适合我。我正在使用 R 3.3.2。

我认为解决您的问题的一个可能方法是检查您的会话中是否启用了警告消息。 如果您阅读 ?options,您会注意到函数返回的值之间存在警告值。

来自参考: 警告: 设置警告消息的处理。如果警告为负,则忽略所有警告。如果 warn 为零(默认值),则存储警告,直到顶级函数返回。如果发出了 10 个或更少的警告,它们将被打印出来,否则会显示一条消息,说明发出了多少个警告。创建了一个名为 last.warning 的对象,并且可以通过函数警告打印。如果 warn 为 1,则在出现警告时打印警告。如果 warn 为 2 或更大,则所有警告都会变成错误。

因此,如果您的 warn 值为负数,您将不会看到警告消息。 您可以通过以下方式启用警告消息:

options(warn=1)

尝试更改此设置并重新运行您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-09
    • 1970-01-01
    相关资源
    最近更新 更多