2015-08-10 1 views
2

Existe-t-il une fonction qui renvoie TRUE/FALSE si des parties de code génèrent un avertissement?instruction logique si le code génère un avertissement dans R

Ainsi, par exemple:

sqrt(-1) 

génère un message d'avertissement, et je suis à la recherche fonction qui peut effectuer les opérations suivantes:

functionname(sqrt(-1)) 

> TRUE 

où « TRUE » signifie que le morceau de code à l'intérieur de la fonction génère un message d'avertissement. J'espère avoir clarifié ce que je veux dire.

+0

Vous pouvez vérifier [ici] (http://stackoverflow.com/questions/3903157/ how-can-i-check-if-a-function-call-results-in-a-warning) – akrun

+0

Pourquoi voulez-vous faire cela? – Dason

+0

'functionname <- function (x) ifelse (estTRUE (tryCatch (x, warning = fonction (w) TRUE)), TRUE, FALSE)' – RHertel

Répondre

4

Je ne sais pas si l'on existe hors de la boîte, mais vous pouvez écrire votre propre en utilisant tryCatch

givesWarning <- function(expr){ 
    tryCatch(eval(expr), 
      warning = function(cond) TRUE) 
} 

givesWarning(sqrt(-1)) 
+1

Selon l'OP, une fonction qui retourne TRUE/FALSE est demandée selon que il y a un avertissement ou pas. – RHertel