본문 바로가기
  • "You can't manage what you can't measure" Peter Drucker
데이터 분석 (with Rstudio)

[Rstudio tidyverse] dplyr 패키지 (group_by, summarize, arrange)

by Vitaminymc 2023. 10. 8.
반응형

dplyr 패키지 (group_by, summarize, arrange)

group_by 및 summarize : 그룹화된 데이터에서 요약 통계량을 계산

group_by() 및 summarize() 함수는 dplyr 패키지의 중요한 기능 중 하나로, 데이터 프레임을 그룹화하고 각 그룹에 대한 요약 통계량을 계산하는 데 사용된다.

summarize() 내 통계량 사용 함수 및 내용
평균 (Mean) mean(x):  열 x의 평균 값을 계산
중앙값 (Median) median(x) : 열 x의 중앙값을 계산
최댓값 (Maximum) max(x)  열 x에서 최댓값을 계산
최솟값 (Minimum) min(x): 열 x에서 최솟값을 계산
범위 (Range) max(x) - min(x): 열 x의 범위를 계산
표준편차 (Standard Deviation): sd(x): 열 x의 표준편차를 계산
분산 (Variance) var(x): 열 x의 분산을 계산
합계 (Sum) sum(x): 열 x의 합계를 계산
개수 (Count) n(): 그룹 내 행의 개수를 계산
사분위수 (Quantiles) quantile(x, probs): 열 x에서 주어진 확률에 해당하는 사분위수를 계산
# Species (펭귄 종류)에 따라 그룹화하고 그룹화된 데이터에서 요약 통계량 계산
penguins |>
  group_by(species) |>
  summarize(
    Mean_Flipper_Length = mean(bill_length_mm),
    Median_Body_Mass = median(body_mass_g),
    Max_Bill_Depth = max(flipper_length_mm),
    Min_Bill_Depth = min(flipper_length_mm)
  )

#그룹 내 행의 개수(count) 계산
penguins |>
  group_by(species) |>
  summarize(
    Count = n() 
  )

#Island 열의 빈도수 계산
penguins |>
  group_by(species, island) |>
  summarize(
    island_frequency <- n())
  )

 

na.rm = TRUE 옵션

na.rm = TRUE 옵션을 사용하여 NA 값을 제외하고 요약 통계량을 계산한다.

(NA 값을 포함한 데이터에 대한 요약 통계량이 계산된다.)

#na.rm = TRUE 옵션 사용
penguins |>
  group_by(species) |>
  summarize(
    Mean_Flipper_Length = mean(bill_length_mm, na.rm = TRUE),
    Median_Body_Mass = median(body_mass_g, na.rm = TRUE),
    Max_Bill_Depth = max(flipper_length_mm, na.rm = TRUE),
    Min_Bill_Depth = min(flipper_length_mm, na.rm = TRUE)
  )

 

n_distinct() 

n_distinct() 함수를 사용하여 열의 고유한 값의 개수를 계산할 수 있다.

#species (펭귄 종류) 열의 고유한 값의 개수 계산

penguins |>
  group_by(species) |>
  summarize(
    Unique_Species_Count = n_distinct(species)
  )

300x250

 

arrange : 데이터를 정렬

오름차순 (기본 옵션)

 기본 정렬 방식이며 열의 값을 작은 값부터 큰 값으로 정렬

penguins |>
  arrange(flipper_length_mm)

 

내림차순 : desc()

내림차순은 열의 값을 큰 값부터 작은 값으로 정렬합니다. desc() 함수를 사용하여 내림차순 정렬을 지정

penguins |>
  arrange(desc(flipper_length_mm))

 

desc() 함수를 ' - '로 대체할 수도 있다.

penguins |>
  arrange( -(flipper_length_mm))

 

여러 열(변수)로 정렬

열(변수)을 여러 개 지정하면 첫 번째 열을 기준으로 정렬하고 동일한 값들에 대해서만 다음 열로 정렬한다.

penguins |>
  arrange(species, sex, body_mass_g)

penguins |>
  arrange(species, desc(sex), body_mass_g)

 

filter + group_by + summarize + arrange

filter(), mutate(), summarize(), arrange() 함수를 모두 사용하는 예제

penguins |>
  mutate (body_mass_kg = body_mass_g/1000) |>
  filter (body_mass_kg >= 3.5) |>
  group_by(species) |>
  summarise(
    no_of_penguins = n()
  ) |>
  arrange(-no_of_penguins )

 

Pixabay로부터 입수된 Gerd Altmann님의 이미지 입니다.

 

 

728x90