Sys.Date()는 오늘 날짜를 Date class로 보여주고, Sys.time()은 오늘 날짜, 시간을 POSIXct class로 보여준다. strptime() 함수로 반환된 값의 class는 리스트 형식인 POSIXlt였는데 이번엔 POSIXct이다. POSIXct는 1970년 1월 1일 0시 0분 0초를 0으로 정하고 1초에 1씩 증가시킨 정수 값이다.

> nowtime<-Sys.time()
> nowtime
[1] "2018-03-07 16:37:43 KST"
> class(nowtime)
[1] "POSIXct" "POSIXt" 
> nowdate<-Sys.Date()
> nowdate
[1] "2018-03-07"
> class(nowdate)
[1] "Date"
> as.integer(nowtime)
[1] 1520408263
> futuretime<-nowtime+3*60*60
> futuretime
[1] "2018-03-07 19:37:43 KST"

즉, POSIXct 형식으로 반환된 변수인 nowtime은 as.integer() 삼수를 통해 정수로 변환이 가능하고, 세시간 뒤를 알고 싶으면 변수에 3*60*60을 더해주면 된다.

> begin<-strptime("1970-01-01 00:00:00","%Y-%m-%d %H:%M:%S")
> begin1<-as.POSIXct(begin)
> begin1
[1] "1970-01-01 KST"
> begin2<-as.integer(begin1)
> begin2
[1] -32400

1970년 1월 1일 0시 0분 0초를 begin이란 변수에 받고 이를 as.POSIXct() 함수를 통해 변환한 뒤 다시 as.integer() 함수로 변환하면 -32400을 반환한다. 이는 KST라는 timezone이 그리니치 표준시보다 9시간(32400=9*60*60) 이르기 때문이다.

'R' 카테고리의 다른 글

R 데이터 변형하기 - subset(), which()  (0) 2018.03.19
R에서 데이터 다루기  (0) 2018.03.13
R 막대그래프 barplot(), ggplot()  (0) 2018.03.09
R에서 시간 처리하기 strptime()  (0) 2018.03.06
R에서 날짜 다루는 법 as.Date()  (0) 2018.03.05
Posted by jujaeuk
,