Tạo trung bình theo tháng
Mặc dù lệnh to.period() hữu ích trong nhiều ngữ cảnh, nhưng với mục đích của bạn, việc chọn một hàng duy nhất làm đại diện cho cả tháng có thể không phù hợp.
Thay vào đó, hợp lý hơn là tạo giá trị nhiệt độ trung bình theo tháng. Để làm điều này, bạn sẽ cần tự tính trung bình theo tháng bằng cách dùng split() và lapply(), rồi tạo một đối tượng xts mới bằng as.xts(). Quy trình này có thể trông phức tạp, nhưng bạn đã có đủ kỹ năng để làm rồi!
Đối tượng xts đã được lọc từ bài trước, temps_xts_2, đã được nạp sẵn vào không gian làm việc của bạn. Ngoài ra còn có một đối tượng index đã nạp sẵn, chứa một vector các ngày là ngày đầu tiên của mỗi tháng có trong dữ liệu.
Bài tập này là một phần của khóa học
Nghiên cứu tình huống: Phân tích dữ liệu chuỗi thời gian của thành phố bằng R
Hướng dẫn bài tập
- Dùng
split()để tạo danh sách theo tháng từ cộtmeancủa đối tượngtemps_xts_2. Nhớ chỉ định"months"làm chu kỳ (đối sốf). - Dùng
lapply()để tính "trung bình của các giá trị trung bình", tức là nhiệt độ trung bình theo tháng. - Dùng
as.xts()để tạo một đối tượng xts mới chứa nhiệt độ trung bình theo tháng ở Boston từ 2010 đến 2015. Để làm được điều này, bạn sẽ cần kết hợp dữ liệumean_of_meanstheo tháng với đối tượngindextheo tháng của bạn. - Cuối cùng, kiểm tra rằng đối tượng
temps_monthlymới của bạn có cùng khoảng thời lượng và tính chu kỳ vớiflights_xts.
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.
# Split temps_xts_2 into separate lists per month
monthly_split <- split(___$___ , f = "___")
# Use lapply to generate the monthly mean of mean temperatures
mean_of_means <- lapply(___, FUN = ___)
# Use as.xts to generate an xts object of average monthly temperature data
temps_monthly <- as.xts(as.numeric(___), order.by = ___)
# Compare the periodicity and duration of your new temps_monthly and flights_xts
periodicity(___)
periodicity(___)