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: 여러 열을 추가하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다