Enthalten R hat eine assert-Anweisung wie in Python?
-
19-09-2019 - |
Frage
eine Erklärung, dass überprüft, ob etwas wahr ist, und wenn nicht druckt eine bestimmte Fehlermeldung und beendet
Andere Tipps
@ Nick:
Sie können Ihre Fehlermeldung steuern, wenn Sie eine Funktion mit einem beschreibenden Namen schreiben, die Bedingung zu testen, die einen Fehler in Ihrem Programm werfen. Hier ein Beispiel:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
Damit werden die Zahlen 1 bis 8 drucken, dann eine Meldung aus, die besagt,
Error: Less_Than_8(i) is not TRUE
Es wäre schön, wenn die „i“ in Klammern mit dem Wert ersetzt wurde, die den Test nicht bestanden, aber man bekommt, was man bezahlt.
Wenn Sie etwas schicker als die, Blick in runit und testthat als Harlan vorgeschlagen.
Dies kann mit dem Befehl stop
erreicht werden. Dieser Befehl wird die Ausführung einer Funktion stoppen und die Fehlermeldung drucken. Zum Beispiel können wir testen, ob die Variable something
FALSE
ist:
if(something == FALSE){
stop("error message to print")
}
In ähnlicher Weise wird der warning
Befehl wird eine Warnung ausgegeben (aber weiterhin den Code ausgeführt wird).
if(something == FALSE){
warning("error message to print")
}
Diese beiden sind durch Basis R vorgesehen und erfordern keine Pakete laufen oder sind eigene Funktionen zu schreiben. Ich ziehe diesen Ansatz zu schreiben Code mit weniger Abhängigkeiten und diese Syntax weit verbreitet in der Verpackungsentwicklung verwendet wird. Doch eine ähnliche Funktionalität wird durch das „assertthat“ Paket mit der assert_that
Funktion unterstützt, die vor kurzem im Rahmen der Hadleys „tidyverse“ veröffentlicht wurde.