2017-02-17 54 views
2

这应该是简单的基础上像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!")} 

因此,无论我做一个简单的语法错误或者是不应该警告的功能外使用?

+6

什么是不工作?它似乎为我工作... – joran

+0

也许你还没有启用显示警告? –

+0

第一个只是没有返回。第二个显示警告。 –

回答

1

你的代码对我很好。我正在使用R 3.3.2。

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

从参考: 警告: 设置警告消息的处理。如果警告是否定的,则所有警告都将被忽略。如果警告为零(默认),警告将被存储直到顶层函数返回。如果发出10个或更少的警告信号,则会打印出其他信息,说明有多少信号。一个名为last.warning的对象被创建并且可以通过函数警告来打印。如果警告是警告,则会在发生警告时进行打印。如果警告是两个或更多,则所有警告都会变成错误。

因此,如果您对警告有负值,您将看不到警告消息。 您可以启用下列方式警告消息:

options(warn=1) 

尝试改变这一点,并重新运行代码。