Vérifier si une variable est un nombre dans la R

J'ai les données suivantes cadre:

> ddf = data.frame(name=c('a','b'), value=c(10,20))
> ddf
  name value
1    a    10
2    b    20

J'essaie d'obtenir de xx à partir de ddf à l'aide de la commande suivante:

> xx = ddf[ddf$name=='a','value']
> xx
[1] 10
> xx = ddf[ddf$name=='c','value']
> xx
numeric(0)

Comment puis-je tester si xx est un nombre valide et non pas " numeric(0)'. J'ai essayé de suivre:

> is.numeric(xx)
[1] TRUE
> is.na(xx)
logical(0)
> is.null(xx)
[1] FALSE
> is.logical(xx)
[1] FALSE

Je dois demander pour xx = ddf[ddf$name=='a', 'value'] de différents ddf trames de données. Parfois ddf ne contient pas de 'a' et par conséquent, aucune valeur n'est retournée. Je tiens à le détecter.

  • Note toutefois que "le nombre valide" n'est pas un paramètre dans R. Que faire si vous ne souhaitez pas autoriser NA ou Inf valeurs? Assurez-vous que vous savez exactement ce que vous avez besoin de test pour!
  • Vous pouvez le vérifier sa longueur
  • J'ai édité ma question, pour ce que j'en ai besoin. Je pense que la longueur(xx)>0 sera le mieux.
  • Le > 0 n'est pas nécessaire parce que 0 est une logique FALSE, et tout autre nombre est toujours TRUE. Donc if(!length(x)) serait plus propre.
InformationsquelleAutor rnso | 2014-09-16