Date-Time Conversion Function in R


R에서는 이것의 처리를 위해서 POSIXlt POSICct를 사용 할 수 있다.

예제

> Sys.time()
[1] "2015-12-12 13:08:11 KST"
w
> Sys.timezone()
[1] "Asia/Seoul"

> Sys.Date()
[1] "2015-12-12"

현재 datetime을 class로 받은다음 그것을 integer로 변경하는 방법

> z <- Sys.time()
> z
[1] "2015-12-12 13:27:17 KST"
> unclass(z)
[1] 1449894437

#다시 원래대로 복구함
> as.POSIXct(1449894437,origin="1970-01-01")
[1] "2015-12-12 13:27:17 KST"

서로 다른 시간으로 변경하

> as.POSIXlt(Sys.time(), "GMT")
[1] "2015-12-12 04:45:42 GMT"
> as.POSIXlt(Sys.time(), "EST5EDT")  # the current time in New York
[1] "2015-12-11 23:46:48 EST"
> as.POSIXlt(Sys.time(), "EST" )     # ditto, ignoring DST
[1] "2015-12-11 23:46:48 EST"
> as.POSIXlt(Sys.time(), "HST")      # the current time in Hawaii
[1] "2015-12-11 18:46:48 HST"
> as.POSIXlt(Sys.time(), "Australia/Darwin")
[1] "2015-12-12 14:16:48 ACST"

timestamp (milliseconds) 처리하기

#POSIXct 함수를 이용한
time <- 1433848856453
timezone <- 10800000
options(digits.secs=3)
as.POSIXct((time+timezone)/1000, origin="1970-01-01")

lt와 ct의 차이

lt는 list time의 약어이고 ct는 continuous time`의 약어이다.

  • as.POSIXlt(): 시계열분석이나 년/월/일/시간/분/초 단위로 구분해서 연산을 해야 하는 경우 해당 함수로 날짜/시간 type으로 바꾸어주면 편하다.

  • as.POSIXct():

참고자료

http://astrostatistics.psu.edu/su07/R/html/base/html/as.POSIXlt.html
http://stackoverflow.com/questions/1962278/dealing-with-timestamps-in-r
지수표기를 숫자표기로 변경하는 R 옵션


+ Recent posts