Bắt đầu ngayBắt đầu miễn phí

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()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

Xem khóa học

Hướng dẫn bài tập

  • Dùng split() để tạo danh sách theo tháng từ cột mean của đối tượng temps_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ệu mean_of_means theo tháng với đối tượng index theo tháng của bạn.
  • Cuối cùng, kiểm tra rằng đối tượng temps_monthly mới của bạn có cùng khoảng thời lượng và tính chu kỳ với flights_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(___)
Chỉnh sửa và Chạy Mã