1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Làm việc với Ngày và Giờ trong R

Connected

Bài tập

Điểm khó khi làm việc với tháng

ymd("2018-01-31") + months(1) sẽ trả về gì? Sẽ là 30, 31 hay 28 ngày sau? Hãy thử xem. Nói chung lubridate sẽ trả về cùng một ngày trong tháng ở tháng kế tiếp, nhưng vì ngày 31 tháng 2 không tồn tại nên lubridate trả về giá trị thiếu, NA.

Có các toán tử cộng và trừ thay thế: %m+% và %m-% với hành vi khác biệt. Thay vì trả về NA cho một ngày không tồn tại, chúng sẽ lùi về ngày cuối cùng có tồn tại.

Bạn sẽ khám phá hành vi này bằng cách thử tạo một dãy là ngày cuối cùng của mỗi tháng trong năm nay.

Hướng dẫn

100 XP

Chúng tôi đã đặt jan_31, ngày 31 tháng 1 của năm nay, trong workspace của bạn.

  • Bắt đầu bằng cách tạo một dãy 1 đến 12 khoảng thời gian, mỗi khoảng là 1 tháng.
  • Cộng month_seq vào jan_31. Lưu ý điều gì xảy ra với bất kỳ tháng nào không có ngày 31
  • Bây giờ cộng month_seq vào jan_31 bằng toán tử %m+%.
  • Thử trừ month_seq khỏi jan_31 bằng toán tử %m-%.