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-142y를 더한 연산으로 그 결과는 직관적으로 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가 되었다.