as.Date(날짜)를 사용하여 날짜를 다룰 수 있다. unclass를 이용하면 1970년 1월 1일부터 지금까지 몇 일이 지났는지 알려준다.
> date <- as.Date("2016-03-01")
> date
[1] "2016-03-01"
> unclass(date)
[1] 16861
> unclass(as.Date("2016-03-01"))
[1] 16861
> startDate <- as.Date("1970-01-01")
> startDate
[1] "1970-01-01"
> unclass(startDate)
[1] 0
> unclass(startDate + 1)
[1] 1
Date 객체간 서로 빼면 기간이 나온다. 참고로 Date 연산은 오직 음수만 사용할 수 있다.
> date1 <- as.Date("2016-02-28")
> date2 <- as.Date("2016-03-01")
> date2 - date1
Time difference of 2 days
> date1 - date2
Time difference of -2 days
> date2 + date1
Error in `+.Date`(date2, date1) :
이항 연산자 + 는 "Date" 객체에 정의되어 있지 않습니다
> date2 * date1
Error in Ops.Date(date2, date1) : "Date" 객체에 정의되지 않은 *입니다
> date2 / date1
Error in Ops.Date(date2, date1) : "Date" 객체에 정의되지 않은 /입니다
현재 시간 정보를 Sys.time()으로 받아 as.POSIXlt() 함수로 시간 객체를 만들 수 있다. format() 함수를 통해서 문자열로 날짜와 시간을 얻을 수 있다.
> t <- Sys.time()
> t
[1] "2016-02-27 08:27:34 KST"
> class(t)
[1] "POSIXct" "POSIXt"
> time_data <- as.POSIXlt(t)
> unclass(time_data)
$sec
[1] 34.59137
$min
[1] 27
$hour
[1] 8
$mday
[1] 27
$mon
[1] 1
$year
[1] 116
$wday
[1] 6
$yday
[1] 57
$isdst
[1] 0
$zone
[1] "KST"
$gmtoff
[1] 32400
attr(,"tzone")
[1] "" "KST" "KDT"
> time_data$mday
[1] 27
> unclass(t)
[1] 1456529255
> format(t, "%Y%H%M")
[1] "20160827"
'R' 카테고리의 다른 글
[R] invisible() (0) | 2016.03.02 |
---|---|
[R] ... 사용하기 (0) | 2016.03.02 |
[R] 벡터 연산 (0) | 2016.02.17 |
[R] str(), dput(), args() : 함수 원형 보기 (0) | 2016.02.15 |
[R] 객체 저장 (텍스트: dget/dput, dump/source) vs (바이너리 : save/load) (0) | 2016.02.15 |