229 votes

Script de R - suppression de valeurs de NA d’un vecteur

Comment puis-je supprimer des valeurs de NA d’un vecteur ?

J’ai un énorme vecteur qui a un couple de valeurs NA, et je vais essayer de trouver la valeur max dans ce vecteur (le vecteur est tous les nombres), mais je ne peux pas faire cela en raison des valeurs NA.

Comment puis-je supprimer les valeurs NA donc que je peux calculer le max ?

309voto

Josh O'Brien Points 68397

En essayant ?max, vous allez voir que c'est réellement un na.rm = argument, définis par défaut en FALSE. (C'est le défaut de beaucoup d'autres fonctions R, y compris sum(), mean(), etc.)

Paramètre na.rm=TRUE qui fait exactement ce que vous demandez:

d <- c(1, 100, NA, 10)
max(d, na.rm=TRUE)

Si vous ne souhaitez supprimer toutes les de la NAs, utilisez cet idiome à la place:

d <- d[!is.na(d)]

Une dernière remarque: d'Autres fonctions (par exemple, table(), lm(), et sort()) ont NA-les arguments qui utilisent des noms différents (et proposer différentes options). Donc, si NA's vous causer des problèmes dans un appel de fonction, il vaut la peine de regarder pour une solution intégrée parmi les arguments de la fonction. J'ai trouvé il y a généralement un déjà là.

111voto

BondedDust Points 105234

Le `` fonction est ce que beaucoup de l’utilisation de routines de régression en interne :

26voto

Nick Sabbe Points 6741

vous montre qu’il y a un paramètre supplémentaire que vous pouvez définir `` .

En dehors de cela, si vous voulez vous vraiment supprimer le `` s, il suffit d’utiliser quelque chose comme :

16voto

Michael Hoffman Points 8557

Vous pouvez appeler . Plus généralement, vous pouvez utiliser le fonction.

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