4. 파이썬, R 등등(통계분석 관련)
제1유형 - 시계열 데이터 처리
HO4WIN
2025. 6. 25. 14:43
2025년 6월 21일(토) - 빅데이터분석기사 실기(R) 10회차
시계열 데이터 처리하기
반응형
연월일시(2025.3.24 13:00, 2024.11.15. 10:20, ...등) 에 대하여
A지점, B지점... 등 각 지점별 판매 메뉴에 대한 판매금이 기록되어 있다. (아래와 같은 예시)
날짜 | 매장 | 메뉴 | 판매금액 |
2024.3.20. 10:24 | A매장 | 아메리카노 | 4400 |
2024.10.15. 14:23 | B매장 | 라떼 | 5500 |
위 데이터로부터
1. 연월을 구분하여 가장 많이 팔린 달의 매출합계 구하시오.
2. 위 문제에서 가장 많이 팔린 달의 2번째로 많이 팔린 메뉴의 매출 합계 구하시오.
먼저 데이터의 날짜가 문자형으로 구성되어 있을때, 날짜 형식으로 바꿔줘야 한다.
str(df)
str 문을 사용하여 각 변수들의 형식을 파악한다.
변수의 형식을 날짜형식으로 바꿔주자. (대소문자 구분)
df$date <- as.Date(df$date)
연도별 그룹화
# 연도별로 그룹화
df_year <- air %>%
group_by(year = year(dataTime)) %>%
summarise(sum_co = sum(coValue))
df_year
연월별 그룹화
## 연월별로 그룹화
df_year_month <- air %>%
group_by(ym = format(dataTime, "%Y-%m")) %>%
summarise(sum_ym = sum(coValue)) %>%
arrange(desc(sum_ym))
df_year_month
연월별 그룹화 - lubridate 패키지 사용
df_lubri <- air %>%
group_by(year = year(dataTime), month = month(dataTime)) %>%
summarise(sum_ym = sum(coValue)) %>%
arrange(desc(sum_ym))
df_lubri
연월별 그룹화 후 세부 그룹(staionName) 으로 재정렬 (참고. 학년-반 그룹 짓기)
## 연월별 그룹 내에서 stationName
df_ym_station <- air %>%
group_by(ym = format(dataTime, "%Y-%m"), stationName) %>%
summarise(ym_s = sum(coValue)) %>%
left_join(df_year_month, by="ym") %>%
arrange(desc(sum_ym), desc(ym_s))
df_ym_station
>>> sum_ym 에 대해 내림차순 정리 후, ym_s 에 대해 다시 내림차순 정리된 모습
[참고] lubridate 패키지 사용 - 연도와 월을 지정 필터링한 후 세부 변수에 따라 재정렬
df_lubri03 <- air %>%
filter(year(dataTime)=="2022" & month(dataTime)== "6") %>%
group_by(stationName) %>%
summarise(s = sum(coValue)) %>%
arrange(desc(s))
df_lubri03
[참고] lubridate 패키지 사용 - 연, 월, 세부 변수인 3가지 조건에 따라 정렬한 경우 (정렬값에 대한 내림차순 정리)
df_lubri02 <- air %>%
group_by(year = year(dataTime), month = month(dataTime), stationName) %>%
summarise(sum_value = sum(coValue)) %>%
arrange(desc(sum_value))
df_lubri02
[참고] group_by(첫번째 그룹 변수, 두번째 그룹 변수)
[참고] format(data, "%Y-%m")에서 data는 반드시 날짜형이어야 한다.
문자형 -> 날짜형 -> format
반응형