not - Eliminación de NA en tubería dplyr
r dplyr where (1)
Traté de eliminar NA del subconjunto utilizando tuberías dplyr. Es mi respuesta una indicación de un paso perdido. Estoy tratando de aprender a escribir funciones usando 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 ABBEVILLE AREA MEDICAL CENTER SC NA 2 ABBEVILLE GENERAL HOSPITAL LA NA 3 ABBOTT NORTHWESTERN HOSPITAL MN 12.3 4 ABILENE REGIONAL MEDICAL CENTER TX 17.2 5 ABINGTON MEMORIAL HOSPITAL PA 14.3 6 ABRAHAM LINCOLN MEMORIAL HOSPITAL IL NA Variables not shown: HeartFailureDeath (dbl), PneumoniaDeath (dbl)
No creo que
desc
tome un argumento
na.rm
... Estoy realmente sorprendido de que no arroje un error cuando le das uno.
Si solo desea eliminar
NA
s, use
na.omit
(base) o
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 solo desea eliminar
NA
s de la columna HeartAttackDeath, filtre con
is.na
o use
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()
Como se señaló en el duplicado,
complete.cases
también se puede usar, pero es un poco más complicado ponerlo en una cadena porque toma un marco de datos como argumento pero devuelve un vector de índice.
Entonces podrías usarlo así:
outcome.df %>%
filter(complete.cases(.)) %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()