2017-02-17 3 views
2

Dies sollte einfach basierend auf Beiträge wie this sein, aber irgendwie kann ich es nicht zum Laufen bringen. Was ist falsch an diesem Beispiel?Erstelle ich meine eigene Warnmeldung außerhalb einer Funktion?

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

Es arbeitet mit stop():

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

Also entweder ich mache eine einfache Syntax Fehler oder Warnung soll nicht außerhalb von Funktionen verwendet werden?

+6

Was genau funktioniert nicht? Es scheint für mich zu funktionieren ... – joran

+0

Vielleicht haben Sie die Anzeige von Warnungen nicht aktiviert? –

+0

Die erste gibt nur nichts zurück. Die zweite zeigt eine Warnung an. –

Antwort

1

Ihr Code funktioniert gut mit mir. Ich benutze R 3.3.2.

Ich denke, eine mögliche Lösung für Ihr Problem ist zu überprüfen, ob Warnmeldungen in Ihrer Sitzung aktiviert sind. Wenn Sie ? Optionen lesen, werden Sie bemerken, dass zwischen den Werten, die von der Funktion zurückgegeben werden, der Wert warn ist.

Aus dem Referenz: warnen: den Umgang mit Warnmeldungen setzt. Wenn Warnung negativ ist, werden alle Warnungen ignoriert. Wenn warn null ist (der Standardwert), werden Warnungen gespeichert, bis die Funktion der obersten Ebene zurückkehrt. Wenn 10 oder weniger Warnungen signalisiert wurden, werden sie gedruckt, ansonsten wird eine Nachricht ausgegeben, die angibt, wie viele Signale signalisiert wurden. Ein Objekt namens last.warning wird erstellt und kann über die Funktionswarnungen gedruckt werden. Wenn Warnung eins ist, werden Warnungen gedruckt, sobald sie auftreten. Wenn Warnung zwei oder größer ist, werden alle Warnungen zu Fehlern.

Wenn Sie also einen negativen Wert für warn haben, werden keine Warnmeldungen angezeigt. Sie können Warnmeldungen auf folgende Weise aktivieren:

options(warn=1) 

Versuchen Sie, diese zu ändern und den Code erneut ausführen.

Verwandte Themen