une déclaration qui vérifie si quelque chose est vrai et sinon imprime un message d'erreur donné et se termine
@Entaille:
Vous pouvez contrôler votre message d'erreur si vous écrivez une fonction avec un nom descriptif pour tester la condition qui provoquera une erreur dans votre programme. Voici un exemple:
Less_Than_8 = function(x) return(x < 8)
for (i in 1:10)
{
print(i)
stopifnot(Less_Than_8(i))
}
Ceci imprimera les chiffres de 1 à 8, puis imprimera un message disant
Error: Less_Than_8(i) is not TRUE
Ce serait bien si le "i" entre parenthèses était remplacé par la valeur qui a échoué au test, mais vous en avez pour votre argent.
Si vous avez besoin de quelque chose de plus sophistiqué que cela, jetez un coup d'œil à Runit et testez-le comme l'a suggéré Harlan.
Ceci peut être réalisé avec la commande stop
. Cette commande interrompt l'exécution d'une fonction et affiche le message d'erreur. Par exemple, nous pouvons tester si la variable something
est false:
if(something == FALSE){
stop("error message to print)
}
De même, la commande warning
affichera un avertissement (mais continuera à exécuter le code).
if(something == FALSE){
warning("error message to print)
}
Celles-ci sont toutes deux fournies par la base R et ne nécessitent aucun package pour s'exécuter ou pour écrire vos propres fonctions. Je préfère cette approche pour écrire du code avec moins de dépendances et cette syntaxe est largement utilisée dans le développement de packages. Cependant, des fonctionnalités similaires sont prises en charge par le paquet "assertthat" avec la fonction assert_that
récemment publiée dans le cadre du "tidyverse" de Hadley.