Trích xuất để lọc và tổng hợp
Một lý do khác để trích xuất các thành phần là để hỗ trợ lọc quan sát hoặc tạo các bản tóm tắt. Ví dụ, nếu bạn chỉ quan tâm đến các quan sát vào ngày trong tuần (tức là không phải cuối tuần) bạn có thể trích xuất ngày trong tuần rồi loại bỏ cuối tuần, ví dụ: wday(date) %in% 2:6.
Trong bài trước, bạn thấy rằng tháng Một, Hai và Ba là thời điểm tuyệt vời để đến Auckland vì nhiệt độ ấm áp, nhưng liệu bạn có cần áo mưa không?
Trong bài này bạn sẽ tìm ra! Bạn sẽ dùng dữ liệu theo giờ để tính xem mỗi tháng có bao nhiêu ngày có mưa trong khoảng thời gian ban ngày.
Bài tập này là một phần của khóa học
Làm việc với Ngày và Giờ trong R
Hướng dẫn bài tập
- Tạo các cột mới cho giờ và tháng của quan sát từ
datetime. Đảm bảo bạn gắn nhãn tháng. - Lọc chỉ còn các quan sát ban ngày, nơi giờ lớn hơn hoặc bằng
8và nhỏ hơn hoặc bằng22. - Gom nhóm các quan sát trước theo
month, sau đó theodate, và tóm tắt bằng cách dùngany()trên cộtrainy. Điều này cho ra một giá trị cho mỗi ngày - Tóm tắt lần nữa bằng cách cộng
any_rain. Điều này cho ra một giá trị cho mỗi tháng
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Create new columns hour, month and rainy
akl_hourly <- akl_hourly %>%
mutate(
___ = ___(datetime),
___ = ___(datetime, ___),
rainy = weather == "Precipitation"
)
# Filter for hours between 8am and 10pm (inclusive)
akl_day <- akl_hourly %>%
filter(___, ___)
# Summarise for each date if there is any rain
rainy_days <- akl_day %>%
group_by(___, ___) %>%
summarise(
any_rain = ___(rainy)
)
# Summarise for each month, the number of days with rain
rainy_days %>%
summarise(
days_rainy = ___(any_rain)
)