Rucrazia's Blog

주말과 공휴일 날짜를 가져오는 R 코드 본문

기술 - Data Science/Data Science

주말과 공휴일 날짜를 가져오는 R 코드

DoyoungJ 2018. 10. 11. 21:37

##
# 주말 리스트
##

#1년 일자를 생성하고 요일 표시하기

#시작일 지정
start_date <- as.Date("1950-01-01")
#종료일 지정
end_date <- as.Date("2018-12-31")

#일단위로 일련의 날짜 생성하기
df <-data.frame(seq(as.Date(start_date), as.Date(end_date), by=1))
names(df) <-"date_yr"
df$weekday <- weekdays(as.Date(df$date_yr))

myData = df[(df$weekday == '토요일') | (df$weekday == "일요일"),]
head(myData)
tail(myData)

write.csv(myData,'주말 날짜.csv')

 

R로 알아보는 공휴일 리스트

- T Developers에서 제공해주는 API를 이용(미리 API 신청해야 한다.)

 

1. Tdevlopers 사이트에서 가입을 하고 Workspace로 들어간다.

 

 

2.Workspace에서 신규프로젝트 추가 누르기, 프로젝트 추가하기

 

3. 프로젝트 이름 누르기 -> Service 누르기

 

4. Service 에서 밑에 위치한 EventDay 서비스 이용 신청하기

 

 

5. 신청했으면 프로젝트 명 밑에 EventDay를 클릭

 

6. Setting에서 TDCProjectKey를 복사한다. 아래의 R코드에 해당 TDCProjectKey에 넣는다.

 

 

##

# 공휴일 알아내는 코드 (2014년 이후)

##

library(httr)    # for GET(...)
library(rjson)   # for fromJSON(...)
base="https://apis.sktelecom.com/v1/eventday/days?month="
year = "2014"
month = ""
day = ""
type = "h"
query <- paste(base,month,"&year","=", year,"&type=",type,"&day=",day, sep="")
getdata<-GET(url=query, add_headers(TDCProjectKey="여러분의 TDC Project Key를 여기에 넣으세요."))
holyday <- fromJSON(content(getdata,type="text"))$results


holyday_array <- seq(1,1, length=length(holyday))
holyday_name_array <- seq(1,1, length=length(holyday))

for(i in 1:length(holyday)){
  holyday_array[i] <- paste(holyday[[i]]$'year', holyday[[i]]$month, holyday[[i]]$day, sep="-")
  holyday_name_array[i] <- holyday[[i]]$name
}

holyday_df <- data.frame(holyday_array, holyday_name_array)
holyday_df

write.csv(holyday_df,'2014 공휴일.csv')

 

결과 파일

2014 공휴일.csv

2015 공휴일.csv

2016 공휴일.csv

2017 공휴일.csv

2018 공휴일.csv

주말 날짜.csv

 

출처

https://jonnyomme.blogspot.com/2017/03/r-programming-weekdays-1-365.html