1. Learn
  2. /
  3. Courses
  4. /
  5. R에서 날짜와 시간 다루기

Connected

Exercise

달(month)을 다룰 때의 난관

ymd("2018-01-31") + months(1)은 무엇을 반환해야 할까요? 30일 뒤, 31일 뒤, 아니면 28일 뒤일까요? 직접 시도해 보세요. 일반적으로 lubridate는 다음 달의 같은 일(day of the month)을 반환하지만, 2월 31일은 존재하지 않기 때문에 lubridate는 결측값 NA를 반환합니다.

대안으로 덧셈과 뺄셈 연산자 %m+%와 %m-%가 있으며, 동작 방식이 다릅니다. 존재하지 않는 날짜에 대해 NA를 반환하는 대신, 존재하는 마지막 날짜로 되돌립니다(roll back).

올해 각 달의 마지막 날로 이루어진 시퀀스를 만들어 보면서 이 연산자들의 동작을 살펴보세요.

Instructions

100 XP

올해 1월 31일 날짜인 jan_31을 워크스페이스에 준비해 두었습니다.

  • 1개월짜리 기간(period) 1부터 12까지의 시퀀스를 만드세요.
  • month_seq를 jan_31에 더하세요. 31일이 존재하지 않는 달에서는 어떻게 되는지 확인해 보세요.
  • 이제 %m+% 연산자를 사용해 month_seq를 jan_31에 더해 보세요.
  • %m-% 연산자를 사용해 month_seq를 jan_31에서 빼 보세요.