작성자: admin 작성일시: 2016-09-26 23:13:34 조회수: 170 다운로드: 33
카테고리: R 태그목록:

R의 날짜 및 시간 관련 명령

날짜 명령

R에서 현재 날짜를 구하려면 Sys.Date() 명령을 사용한다. 출력된 날짜 객체의 클래스 이름은 Date이다.

In [8]:
d <- Sys.Date()
d
[1] "2016-09-26"
In [9]:
class(d)
'Date'

Date 객체를 문자열로 바꾸려면 format(date, format=) 명령을 사용한다. 문자열이 어떤 포맷으로 되어 있는지를 format 인수로 명시해야 한다. 포맷 문자열에 대한 자세한 설명은 다음 문서를 참조한다.

반대로 문자열을 Date 객체로 변환하려면 as.Date(string, format=) 명령을 사용한다.

In [43]:
format(d, format="%Y:%m:%d")
'2016:09:26'
In [44]:
as.Date("2016:09:27", format="%Y:%m:%d")
[1] "2016-09-27"

Date 객체에서 Date 객체를 빼면 두 날짜 사이의 날자 수가 나온다. 또한 Date 객체에 정수를 더하거나 빼면 그 만큼의 날짜를 더하거나 뺀 Date 객체를 구한다.

In [45]:
d1 <- as.Date("2016-01-02")
d2 <- as.Date("2016-03-12")
In [46]:
d1 > d2
FALSE
In [47]:
d2 - d1
Time difference of 70 days
In [48]:
d1 + 1
[1] "2016-01-03"
In [49]:
d2 - 1
[1] "2016-03-11"

시간 명령

R에서 현재 날짜와 시간를 구하려면 Sys.time() 명령을 사용한다. 출력된 날짜 객체의 클래스 이름은 POSIXct이다. POSIXct 객체는 날짜 뿐 아니라 시간, 그리고 시간대(timezone) 정보까지 포함하고 있다.

In [50]:
t <- Sys.time()
t
[1] "2016-09-26 14:07:00 UTC"
In [51]:
class(t)
  1. 'POSIXct'
  2. 'POSIXt'

POSIXct 객체를 문자열로 바꾸려면 format(time, format=) 명령을 사용한다. 문자열이 어떤 포맷으로 되어 있는지를 format 인수로 명시해야 한다. 반대로 문자열을 POSIXct 객체로 변환하려면 strptime(string, format=) 명령을 사용한다.

In [52]:
format(t, format="%H시 %M분")
'14시 07분'
In [53]:
strptime("2016년 9월 26일 13시 49분", format="%Y년 %m월 %d일 %H시 %M분")
[1] "2016-09-26 13:49:00 UTC"

월, 일, 시, 분, 초 등의 정보를 숫자로 구하려면 as.numeric(format(time)) 명령을 사용한다.

In [55]:
as.numeric(format(t, "%Y"))
2016
In [56]:
as.numeric(format(t, "%m"))
9
In [57]:
as.numeric(format(t, "%d"))
26
In [58]:
as.numeric(format(t, "%H"))
14

시간대롤 변경하려면 다음과 같이 tzone 이라는 속성을 변경해야 한다.

In [62]:
attributes(t)$tzone <- "Asia/Seoul"
t
[1] "2016-09-26 23:07:00 KST"

질문/덧글

아직 질문이나 덧글이 없습니다. 첫번째 글을 남겨주세요!