Удаление NA в трубе dplyr

Я попытался удалить NA из подмножества, используя dplyr piping. Является ли мой ответ признаком пропущенного шага. Я пытаюсь научиться писать функции с помощью 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)

Ответ 1

Я не думаю, что desc принимает аргумент na.rm... Я действительно удивлен, что он не выдает ошибку, когда вы ее даете. Если вы просто хотите удалить NA s, используйте na.omit:

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

Если вы хотите удалить NA из столбца HeartAttackDeath, фильтруйте с помощью is.na:

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

Как указано в обмане, можно также использовать complete.cases, но немного сложнее вставить цепочку, потому что он принимает фрейм данных в качестве аргумента, но возвращает индексный вектор. Поэтому вы можете использовать его следующим образом:

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