web-dev-qa-db-fra.com

Retrait de NA dans le tube DPLYR

J'ai essayé de supprimer les éléments NA du sous-ensemble à l'aide de la tuyauterie Dplyr. Est-ce que ma réponse est une indication d'une étape manquée? J'essaie d'apprendre à écrire des fonctions en utilisant dplyr:

> outcome.df%>%
+ group_by(Hospital,State)%>%
+ arrange(desc(HeartAttackDeath,na.rm=TRUE))%>%
+ head()
Source: local data frame [6 x 5]
Groups: Hospital, State
 Hospital State HeartAttackDeath 
 1 CENTRE MÉDICAL DE LA RÉGION D'ABBEVILLE SC NA 
 2 HÔPITAL GÉNÉRAL D'ABBEVILLE LA NA 
 3 HÔPITAL NORD-OUEST DE L'ABBÉVILLE MN 12,3 
 4 CENTRE MÉDICAL RÉGIONAL ABILENE TX 17.2 
 5 HÔPITAL COMMÉMORATIF DE ABINGTON 14.3 
 6 HÔPITAL MÉMOIRE ABRAHAM LINCOLN IL NA 
 Variables non illustrées: HeartFailureDeath (dbl), PneumoniaDeath 
 (dbl) 
71
ITCoderWhiz

Je ne pense pas que desc prenne un argument na.rm ... je suis en fait surpris qu'il ne jette pas d'erreur lorsque vous le lui donnez. Si vous souhaitez simplement supprimer NAs, utilisez na.omit (base) ou tidyr::drop_na:

outcome.df %>%
  na.omit() %>%
  group_by(Hospital, State) %>%
  arrange(desc(HeartAttackDeath)) %>%
  head()

library(tidyr)
outcome.df %>%
  drop_na() %>%
  group_by(Hospital, State) %>%
  arrange(desc(HeartAttackDeath)) %>%
  head()

Si vous souhaitez uniquement supprimer NAs de la colonne HeartAttackDeath, filtrez avec is.na ou utilisez tidyr::drop_na:

outcome.df %>%
  filter(!is.na(HeartAttackDeath)) %>%
  group_by(Hospital, State) %>%
  arrange(desc(HeartAttackDeath)) %>%
  head()

outcome.df %>%
  drop_na(HeartAttackDeath) %>%
  group_by(Hospital, State) %>%
  arrange(desc(HeartAttackDeath)) %>%
  head()

Comme indiqué à la duplication, complete.cases peut également être utilisé, mais il est un peu plus difficile d'insérer une chaîne car il prend un cadre de données comme argument mais renvoie un vecteur d'index. Donc, vous pouvez l'utiliser comme ceci:

outcome.df %>%
  filter(complete.cases(.)) %>%
  group_by(Hospital, State) %>%
  arrange(desc(HeartAttackDeath)) %>%
  head()
127
Gregor