본문 바로가기
IT이야기/R 언어

R언어 - 날짜 데이터 다루기

by 행복찾아3만리 2021. 8. 21.
반응형

이번 글에서는 R언어에서 날짜 데이터 다루는 방법에 대해 정리해보았습니다.

 

#현재 날자를 today 변수에 저장
today<-Sys.Date()

#클래스 확인
class(today)#"Date"

#현재 날자와 시간을 time변수에 저장
time<-Sys.time()
class(time)#"POSIXct" "POSIXt" 
#POSIX 시간이란?(유닉스 시간) 1970년 1월 1일 00:00:00 협정 세계시 부터의 경과 시간을 초로 환산하여 정수로 나타낸것

#클래스 속성 제거
#1970년 1월 1일 이후로 경과한 일 수
unclass(today)

#1970년 1월 1일 이후로 경과한 초 수
unclass(time)

#클래스 속성 제거된 값 다시 날짜 형식으로 변환
time2<-as.POSIXct(unclass(time), origin = '1970-01-01')
class(time2)

#현재 시간을 구한뒤 POSIXIt 형식으로 변환하여 time 변수에 저장
time<-as.POSIXlt(Sys.time()) #POSIXct가 아니라 POSIRXIt임
class(time)
time$year+1900#1900년 이후의 경과 년도수가 저장되어 있으므로 현재 년도를 구하기 위해서는 1900을 더해야 한다.
time$mon+1#월 정보는 0~11값으로 저장되어 있음
time$mday
time$wday#요일

#날짜 foramt으로 관리
#%Y 4자리년도 수
#%y 2자리 년도 수
#%m 2자리 월
#%d 일
#%B 월(영문 전체 단어)
#%b 월(영문 약자)
#%A 요일(영문 전체 단어)
#%a 요일(영문 약자)
#%H 2자리 시간(00-23)
#%M 2자리 분(00-59)
#%S 2자리 초(00-59)
#%U 요일(1-7, 1:월요일)

now<-Sys.time()
class(now)
now_format<-format(now, "%y-%m-%d %H:%M:%S")
class(now_format)#"character"

date<-as.Date("20210227",format("%Y%m%d"))
date
class(date)

#날짜 연산
#현재 날짜로 부터 100일 후의 날짜 구하기
Sys.Date()+100

# "2021-01-01"로 표현된 데이터로부터 365일 후의 날짜 구하기
as.Date("20210101",format("%Y%m%d"))+365

#"2021-01-01"과 "2022-01-01"사이의 일 수 구하기
diff <-as.Date("20220101",format("%Y%m%d"))-as.Date("20210101",format("%Y%m%d"))#Time difference of 365 days
as.numeric(diff)#365
diff<-difftime('2022-01-01','2021-01-01')
as.numeric(diff)

#시간차이 구하기
difftime<-as.difftime("10:14:50")-as.difftime("09:14:50")
as.numeric(difftime)

 

간단한 부분이기는 하지만 자주 사용하지 않아 쉽게 까먹는 부분 입니다. 도움이 되셨으면 합니다.

 

 

반응형

댓글