R에서 일일 데이터를 월간 및 연간 데이터로 집계하는 방법
때로는 R에서 일일 데이터를 주간, 월간 또는 연간 데이터로 집계하고 싶을 수도 있습니다.
이 튜토리얼에서는 lubridate 및 dplyr 패키지를 사용하여 이를 쉽게 수행하는 방법을 설명합니다.
예: R에서 일일 데이터 집계
연속 100일 동안 품목의 일일 판매량을 보여주는 다음과 같은 데이터 프레임이 R에 있다고 가정합니다.
#make this example reproducible set.seed(1) #create data frame df <- data.frame(date = as.Date (" 2020-12-01 ") + 0:99, sales = runif (100, 20, 50)) #view first six rows head(df) dirty date 1 2020-12-01 27.96526 2 2020-12-02 31.16372 3 2020-12-03 37.18560 4 2020-12-04 47.24623 5 2020-12-05 26.05046 6 2020-12-06 46.95169
이 데이터를 집계하려면 다음 구문을 사용하는 lubridate 패키지의 Floor_date() 함수를 사용할 수 있습니다.
floor_date (x, unit)
금:
- x: 날짜 객체의 벡터입니다.
- 단위: 반올림할 시간 단위입니다. 옵션에는 초, 분, 시간, 일, 주, 월, 격월, 분기, 반년 및 연도가 포함됩니다.
다음 코드 조각은 dplyr 패키지의 group_by() 및 summary() 함수와 함께 이 함수를 사용하여 주, 월, 연도별 평균 판매량을 찾는 방법을 보여줍니다.
주당 평균 판매량
library (lubridate)
library (dplyr)
#round dates down to week
df$week <- floor_date (df$date, " week ")
#find average sales per week
df %>%
group_by (week) %>%
summarize (mean = mean (sales))
# A tibble: 15 x 2
week means
1 2020-11-29 33.9
2 2020-12-06 35.3
3 2020-12-13 39.0
4 2020-12-20 34.4
5 2020-12-27 33.6
6 2021-01-03 35.9
7 2021-01-10 37.8
8 2021-01-17 36.8
9 2021-01-24 32.8
10 2021-01-31 33.9
11 2021-02-07 34.1
12 2021-02-14 41.6
13 2021-02-21 31.8
14 2021-02-28 35.2
15 2021-03-07 37.1
월 평균 매출
library (lubridate)
library (dplyr)
#round dates down to week
df$month <- floor_date (df$date, " month ")
#find average sales by month
df %>%
group_by (month) %>%
summarize (mean = mean (sales))
# A tibble: 4 x 2
month mean
1 2020-12-01 35.3
2 2021-01-01 35.6
3 2021-02-01 35.2
4 2021-03-01 37.0
연간 평균 매출
library (lubridate)
library (dplyr)
#round dates down to week
df$year <- floor_date (df$date, " year ")
#find average sales by month
df %>%
group_by (year) %>%
summarize (mean = mean (sales))
# A tibble: 2 x 2
year means
1 2020-01-01 35.3
2 2021-01-01 35.7
평균을 기준으로 집계하기로 선택했지만 중앙값, 모드, 최대값, 최소값 등 원하는 요약 통계를 사용할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.