2 votes

Déclaration avec longueur d'argument zéro dans R

J'ai la déclaration suivante :

if(Estatu== "INF"){
 MIN <- 5
 } else if (length(Estatu)==0) { 
 MIN <- 0
 }

C'est très simple, mais Estatu a parfois INF et d'autres fois, c'est une valeur vide (character 0) .

J'ai deux problèmes :

  1. Lorsque la valeur est character(0) il indique l'erreur suivante :

    Error in if (Estatu== "INF") { : 
      argument has zero length

    Je voudrais qu'il ne me donne pas d'erreur parce que j'ai déjà mis en dessous que la valeur peut être de longueur zéro.

  2. Lorsque la déclaration est répétée et que la valeur est "0" au lieu de mettre la valeur 0 en MIN les données de la déclaration qui a été exécutée auparavant restent dans le fichier MIN . Je mets en MIN la valeur précédente, le résultat de l'exécution précédente de cette déclaration.

Ce que je peux faire ?

Merci pour votre aide

3voto

akrun Points 148302

Nous pouvons utiliser le length comme première expression afin qu'elle soit évaluée avant toute autre chose.

Estatu <- character(0)
if(length(Estatu) == 0) 0 else if(Estatu == "INF") 5
[1] 0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X