Dplyrパイピングを使用して、サブセットからNAを削除しようとしました。私の答えは、逃したステップの兆候です。 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 [。 ____。 ____。](dbl)
desc
がna.rm
の引数を取るとは思わない...実際にそれを与えたときにエラーがスローされないことに驚いている。 NA
sを削除するだけの場合は、na.omit
(base)または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()
HeartAttackDeathカラムからNA
sのみを削除する場合は、is.na
でフィルタリングするか、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()
詐欺で指摘したように、complete.cases
も使用できますが、データフレームを引数として受け取り、インデックスベクトルを返すため、チェーンに入れるのは少し面倒です。したがって、次のように使用できます。
outcome.df %>%
filter(complete.cases(.)) %>%
group_by(Hospital, State) %>%
arrange(desc(HeartAttackDeath)) %>%
head()