not r dplyr na

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()