8.6 날짜-시간 산술연산을 위한 두 종류의 함수
날짜 변수에 시간을 더하거나 빼야할 경우를 위해 lubridate
패키지는 두 종류의 함수들을 제공한다.
한 종류의 함수들은 “직관적인” 결과를 가져오는데, 윤년(leap year) 같은 관습은 무시한다. 이러한 종류의 함수로는 seconds()
, minutes()
, hours()
, days()
, weeks()
, years()
등이 있다.
또 다른 종류의 함수들은 그러한 관습을 고수하는데, 앞의 함수들의 이름에 d를 추가되어 있는 함수들로서 dseconds()
, dminutes()
, dhours()
, ddays()
, dweeks()
, dyears()
등이 있다.
직관적인 날짜-시간 연산의 예:
# 2016 is a leap year
# the intuitive result
years(2)
## [1] "2y 0m 0d 0H 0M 0S"
ymd("2015-02-14") + years(2)
## [1] "2017-02-14"
years(2)
: “y m d H M S” 형식으로 날짜 시간 데이터를 처리한다.ymd("2015-02-14") + years(2)
:2015-2-14
에2y
를 더한 연산으로 그 결과는 직관적으로2017-2-14
가 된다.
정확한 날짜-시간 연산의 예
# the exact result
dyears(2)
## [1] "63115200s (~2 years)"
ymd("2015-02-14") + dyears(2)
## [1] "2017-02-13 12:00:00 UTC"
dyears(2)
:s
(초) 형식으로 날짜-시간 데이터를 연산한다. 결과는63115200s (~2 years)
ymd("2015-02-14") + dyears(2)
: 2016년은 윤년이어서 최종 결과는2017-02-13 12:00:00 UTC
가 되었다.