Nice programing

dplyr 파이프에서 NA 제거

nicepro 2020. 10. 29. 19:57
반응형

dplyr 파이프에서 NA 제거


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
                           병원 주립 심장 공격 죽음
1 ABBEVILLE 지역 의료 센터 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 아브라함 링컨 기념 병원 IL NA
표시되지 않는 변수 : HeartFailureDeath (dbl), PneumoniaDeath
  (dbl)

나는 생각하지 않는다 desc소요 na.rm실제로 당신이 하나를 줄 때 오류가 발생하지 않습니다 놀랍군요 ... 인수를. NAs 를 제거 하려면 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()

NAHeartAttackDeath 열에서 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()

dupe에서 지적했듯이, complete.cases사용할 수도 있지만 데이터 프레임을 인수로 사용하지만 인덱스 벡터를 반환하기 때문에 체인에 넣는 것이 약간 까다 롭습니다. 따라서 다음과 같이 사용할 수 있습니다.

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

참고 URL : https://stackoverflow.com/questions/26665319/removing-na-in-dplyr-pipe

반응형