開始使用免費開始

月份最棘手的地方

ymd("2018-01-31") + months(1) 應該回傳什麼?應該是未來的 30、31,還是 28 天呢?試試看吧。一般來說,lubridate 會回傳下個月的同一個「月中的日期」,但因為 2 月沒有第 31 天,lubridate 會回傳遺漏值 NA

有另一些加減運算子:%m+%%m-%,它們的行為不同。遇到不存在的日期時,不會回傳 NA,而是回滾到該月最後一個存在的日期。

你將嘗試產生今年每個月最後一天的序列,來觀察它們的行為。

本練習屬於課程

在 R 中處理日期與時間

檢視課程

練習說明

我們已經在你的工作空間放入今年 1 月 31 日的日期 jan_31

  • 先建立一個由 1 到 12、期間長度為 1 個月的序列。
  • month_seq 加到 jan_31。注意那些沒有第 31 天的月份會發生什麼事。
  • 接著用 %m+% 運算子把 month_seq 加到 jan_31
  • 嘗試用 %m-% 運算子,從 jan_31 減去 month_seq

動手互動練習

試著完成這個範例程式碼,體驗一下這個練習。

# A sequence of 1 to 12 periods of 1 month
month_seq <- ___

# Add 1 to 12 months to jan_31
___ + ___

# Replace + with %m+%
___ ___ ___

# Replace + with %m-%
___ ___ ___
編輯並執行程式碼