12
votes

Obtenir "na" quand je gère un écart type

Question rapide. J'ai lu mon fichier CSV dans la variable data ​​code>. Il a une étiquette de colonne var code>, qui a des valeurs numériques.

lorsque j'exécute la commande p> xxx pré>

i get p>

[1] NA 


0 commentaires

4 Réponses :


31
votes

Essayez SD (Data $ var, na.rm = true) , puis tout NAS dans la colonne var sera ignoré. Va payer également pour vérifier vos données pour vous assurer que les NA devraient être NA et qu'il n'a pas été lu dans des erreurs, des commandes telles que Head (données) , , et str (données) devrait aider avec cela.


3 commentaires

J'ai ajouté str () à votre réponse car je trouve qu'il est utile pour ces sortes de tâches de débogage, mais je ne le sentais pas justifiées sa propre réponse. J'espère que cela ne vous dérange pas, n'hésitez pas à revenir.


Résumé (Données) est probablement le moyen le plus simple de voir s'il y a na dans les données.


Parfois, comme «est.numérique ()» peut aider.



5
votes

Vous avez probablement des valeurs manquantes dans var code> ou la colonne n'est pas numérique, ou il n'y a qu'une seule ligne.

Essayez de supprimer les valeurs manquantes qui aideront pour le premier cas: p> xxx pré>

si cela ne fonctionne pas, vérifiez que P>

nrow(dat)


0 commentaires

0
votes

Il peut y avoir inf ou -inf comme des valeurs dans les données.

Essayez xxx

ou xxx

Pour vérifier si c'est bien le cas.


0 commentaires

3
votes

J'ai commis l'erreur un temps ou deux de réutiliser des noms de variables dans dplysr forts> qui a causé des problèmes.

mtcars %>%
  group_by(gear) %>%
  mutate(ave = mean(hp)) %>%
  ungroup() %>%
  group_by(cyl) %>%
  summarise(med = median(ave),
            ave = mean(ave), # should've named this variable something different
            sd = sd(ave)) # this is the sd of my newly created variable "ave", not the original one.


0 commentaires