12.4 날짜 데이터
R에서의 날짜는 1970-01-01
이후의 일 수로 표시되며 이전 날짜는 음수 값으로 처리합니다.
# as.Date( ) 함수는 문자열 날짜를 날짜형 날짜로 변경합니다.
<- c("2007-06-22", "2004-02-13") # 문자형 벡터입니다.
date <- as.Date(date) # 날짜형 Date형 벡터입니다.
mydates mydates
## [1] "2007-06-22" "2004-02-13"
# 2007-6-22과 2004-2-13 사이의 일수는 다음과 같이 계산합니다.
<- mydates[1] - mydates[2] # 날짜형 데이터는 산술연산이 가능합니다.
days days
## Time difference of 1225 days
한편, Sys.Date( )
함수는 오늘 날짜를 반환합니다. 그리고 date()
함수는 현재의 날짜와 시간을 반환합니다.
12.4.1 날짜 형식의 지정
다음의 기호들은 문자형 벡터를 날짜형으로 변경할 때, as.Date()
함수의 format = “”
인수로 사용할 수 있습니다. 또는 format() 함수를 이용하여 날짜형 데이터를 출력할 때 출력형식을 지정할 수도 있습니다.
기호 | 의미 | 예 |
---|---|---|
%d | 숫자형 날짜 (0-31) | 01-31 |
%a %A | 소문자 : 축약된 요일명, 대문자 : 완전한 요일명 | Mon Monday |
%m | 월 (00-12) | 00-12 |
%b %B | 소문자 : 축약된 월이름, 대문자 : 완전한 월이름 | Jan January |
%y %Y | 소문자 : 2 자리 연도, 대문자 : 4자리 연도 | 07 2007 |
날짜형의 경우
help(strptime)
또는? strptime
등으로 자세한 내용을 확인할 수 있습니다.날짜-시간형의 경우는
help(ISOdatetime)
로 자세한 내용을 확인할 수 있습니다.
예를 들면 다음과 같습니다.
# 문자형 벡터를 날짜형 벡터로 변경할 때 사용할 수 있습니다.
<- c("2020 01 03", "2020 03 05", "2021 01 24")
dates <- as.Date(dates, format = "%Y %m %d") # dates 요소에 저장된 형식을 지정해 줍니다.ㄴ
my.dates # 2020-01-03, 2020-03-05, 2021-01-24와 같은 기본적인 날짜 형식으로 출력이 됩니다. my.dates
## [1] "2020-01-03" "2020-03-05" "2021-01-24"
# 오늘 날짜의 출력형식을 지정할 수 있습니다.
<- Sys.Date() # 오늘 날짜를 today 변수에 할당합니다.
today format(today, format="%Y년 %m월 %d일") # "2021년 1월 31일"의 형식으로 출력합니다.
## [1] "2021년 02월 08일"
12.4.2 날짜형 변환
12.4.2.1 문자형을 날짜형으로
You can use the as.Date( ) function to convert character data to dates. The format is as.Date(x, “format”), where x is the character data and format gives the appropriate format.
앞의 예에서 살펴본 바와 같이 as.Date ()
함수를 사용하여 문자형 데이터를 날짜형로 변환 할 수 있습니다.
as.Date()
함수의 다음과 같습니다.
as.Date (x, format = “”)
- x : 문자형 데이터입니다.
- format : 문자형 데이터에 맞춰, 앞의 표에 있는 기호들을 입력합니다.
다음의 예에서 살펴 보겠습니다.
# 'mm/dd/yyyy' 형식의 문자형 벡터를 날짜형 벡터로 변경합니다.
<- c("02/25/2015", "08/15/2016") # 문자형 벡터에 "월/일/년"의 형태로 입력이 되어 있습니다.
Dates.Chr <- as.Date(Dates.Chr, "%m/%d/%Y") # format 인수에 "%m/%d/%Y"로 맞춰 줍니다.
my.dates # 기본 출력형식인 yyyy-mm-dd 형식으로 출력됩니다. my.dates
## [1] "2015-02-25" "2016-08-15"
12.4.2.2 날짜형을 문자형으로
as.character() 함수를 사용하여 날짜형 데이터를 문자형 데이터로 변환할 수 있습니다.
# 문자형 벡터인 my.dates를 날짜형 벡터인 dates로 변경합니다.
<- as.character(my.dates)
dates
# format() 함수를 같이 사용하면 다음과 같은 문자형 벡터로 변경할 수 있습니다.
<- as.character(format(my.dates, format="%Y년 %m월 %d일"))
dates # "2015년 2월 25일", "2016년 8월 15일" dates
## [1] "2015년 02월 25일" "2016년 08월 15일"