전체 가이드: r에서 데이터를 그룹화하고 요약하는 방법


데이터를 분석할 때 수행하는 가장 일반적인 작업 중 두 가지는 데이터를 그룹화하고 요약하는 것입니다.

다행히 R의 dplyr 패키지를 사용하면 데이터를 빠르게 그룹화하고 요약할 수 있습니다.

이 튜토리얼은 dplyr을 시작하는 데 대한 빠른 가이드를 제공합니다.

dplyr 패키지 설치 및 로드

dplyr 패키지의 기능을 사용하려면 먼저 패키지를 로드해야 합니다.

 #install dplyr (if not already installed)
install.packages(' dplyr ')

#load dplyr 
library(dplyr)

다음으로 dplyr의 함수를 사용하여 mtcars 라는 내장 R 데이터 세트를 사용하여 데이터를 그룹화하고 요약하는 몇 가지 예를 설명하겠습니다.

 #obtain rows and columns of mtcars
dim(mtcars)

[1] 32 11

#view first six rows of mtcars
head(mtcars)

                   mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
Valiant 18.1 6 225 105 2.76 3,460 20.22 1 0 3 1

데이터를 그룹화하고 요약하는 데 사용할 기본 구문은 다음과 같습니다.

 data %>%
  group_by (col_name) %>%
  summarize (summary_name = summary_function)

참고: summary() 및 summarise() 함수는 동일합니다.

예 1: 그룹별 평균 및 중앙값 찾기

다음 코드는 평균과 중앙값을 포함하여 그룹별 중심 경향 측정값을 계산하는 방법을 보여줍니다.

 #find mean mpg by cylinder
mtcars %>%
  group_by (cyl) %>%
  summarize (mean_mpg = mean(mpg, na.rm = TRUE ))

# A tibble: 3 x 2
    cyl mean_mpg
      
1 4 26.7
2 6 19.7
3 8 15.1

#find median mpg by cylinder
mtcars %>%
  group_by (cyl) %>%
  summarize (median_mpg = median(mpg, na.rm = TRUE ))

# A tibble: 3 x 2
    cyl median_mpg
        
1 4 26  
2 6 19.7
3 8 15.2

예시 2: 집단별 확산 대책 찾기

다음 코드는 표준 편차, 사분위간 범위, 절대 중앙값 편차를 포함하여 그룹별 분산 측정값을 계산하는 방법을 보여줍니다.

 #find sd, IQR, and mad by cylinder
mtcars %>%
group_by (cyl) %>%
summarize (sd_mpg = sd(mpg, na.rm = TRUE ),
            iqr_mpg = IQR(mpg, na.rm = TRUE ),
            mad_mpg = mad(mpg, na.rm = TRUE ))

# A tibble: 3 x 4
    cyl sd_mpg iqr_mpg mad_mpg
          
1 4 4.51 7.60 6.52
2 6 1.45 2.35 1.93
3 8 2.56 1.85 1.56

예시 3: 그룹별로 번호 찾기

다음 코드는 R에서 그룹별로 번호와 고유 번호를 찾는 방법을 보여줍니다.

 #find row count and unique row count by cylinder
mtcars %>%
group_by (cyl) %>%
summarize (count_mpg = n(),
            u_count_mpg = n_distinct(mpg))

# A tibble: 3 x 3
    cyl count_mpg u_count_mpg
              
1 4 11 9
2 6 7 6
3 8 14 12

예시 4: 그룹별 백분위수 찾기

다음 코드는 실린더 그룹별로 mpg 값의 90번째 백분위수를 찾는 방법을 보여줍니다.

 #find 90th percentile of mpg for each cylinder group
mtcars %>%
group_by (cyl) %>%
summarize (quant90 = quantile(mpg, probs = .9))

# A tibble: 3 x 2
    cyl quant90
     
1 4 32.4
2 6 21.2
3 8 18.3

추가 리소스

여기에서 전체 dplyr 패키지 문서와 유용한 시각화 치트 시트를 찾을 수 있습니다.

group_by()summary() 와 함께 사용할 수 있는 다른 유용한 기능 에는 데이터 프레임의 행을 필터링 하고 특정 순서로 정렬하는 기능이 포함됩니다.

의견을 추가하다

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