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

 

 

 

반응형