Dplyr: 데이터를 요약하지만 모든 열을 유지하는 방법
dplyr 에서 summarise() 함수를 사용하면 summarise() 또는 group_by() 함수에 포함되지 않은 모든 변수가 자동으로 제거됩니다.
그러나 mutate() 함수를 사용하면 데이터 프레임의 모든 열을 유지하면서 데이터를 요약할 수 있습니다.
다음 예에서는 이 기능을 실제로 사용하는 방법을 보여줍니다.
예: 데이터를 요약하지만 dplyr을 사용하여 모든 열을 유지합니다.
다양한 농구 선수에 대한 정보가 포함된 다음과 같은 데이터 프레임이 있다고 가정합니다.
#create data frame df <- data. frame (team=rep(c(' A ', ' B ', ' C '), each= 3 ), points=c(4, 9, 8, 12, 15, 14, 29, 30, 22), assists=c(3, 3, 2, 5, 8, 10, 4, 5, 12)) #view data frame df team points assists 1 to 4 3 2 to 9 3 3 to 8 2 4 B 12 5 5 B 15 8 6 B 14 10 7 C 29 4 8 C 30 5 9 C 22 12
다음 구문을 사용하여 팀당 획득한 평균 점수를 요약할 수 있습니다.
library (dplyr) #summarize mean points values by team df %>% group_by(team) %>% summarize(mean_pts = mean(points)) # A tibble: 3 x 2 team mean_pts 1 to 7 2 B 13.7 3 C 27
Mean_pts 라는 열에는 각 팀이 획득한 평균 점수가 표시됩니다.
결과에서 우리는 다음을 볼 수 있습니다:
- A팀 선수들의 평균 득점은 7점 이다.
- B팀 선수들의 평균 득점은 13.7점 이다.
- C팀 선수들의 평균 득점은 27점 이다.
그러나 원본 데이터 프레임의 다른 모든 열을 유지하고 싶다고 가정해 보겠습니다.
이를 수행하려면 mutate() 함수와 함께 다음 구문을 사용할 수 있습니다.
library (dplyr) #summarize mean points values by team and keep all columns df %>% group_by(team) %>% mutate(mean_pts = mean(points)) %>% A group() # A tibble: 9 x 4 team points assists mean_pts 1 to 4 3 7 2 to 9 3 7 3 to 8 2 7 4 B 12 5 13.7 5 B 15 8 13.7 6 B 14 10 13.7 7 C 29 4 27 8 C 30 5 27 9 C 22 12 27
mutate() 함수를 사용하면 원래 데이터 프레임의 다른 모든 열을 유지하면서 팀당 획득한 평균 점수를 요약하는 Mean_pts 라는 새 열을 만들 수 있습니다.
추가 리소스
다음 튜토리얼에서는 dplyr에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
dplyr: 열에 문자열이 포함된 경우 변수를 변경하는 방법
dplyr: mutate()를 사용하여 요인 수준을 변경하는 방법
dplyr: 여러 열을 추가하는 방법