1) cột. Chúng ta có thể sử dụng lubridate của year
/month
/day
hoặc Sử ký của month.day.year
:
1a) cột qua lubridate
library(zoo)
z <- zoo(1:1000, as.Date("1932-01-01") + 0:999)
library(lubridate)
tt <- time(z)
zz <- cbind(z, year = year(tt), month = month(tt), day = day(tt))
1b) cột qua Sử ký
library(zoo)
z <- zoo(1:1000, as.Date("1932-01-01") + 0:999)
library(chron)
zz <- with(month.day.year(time(z)), zoo(cbind(z, day, month, year)))
2) tổng . Tuy nhiên, chúng tôi không thực sự cần phải tạo cột ở nơi đầu tiên. Chúng tôi chỉ có thể sử dụng aggregate.zoo
trực tiếp với các đối tượng sở thú ban đầu, z
, sử dụng lubridate hoặc Sử ký hoặc chỉ sử dụng yearmon
từ vườn thú tùy thuộc vào những gì nó là bạn muốn làm:
2a) tổng hợp sử dụng lubridate
library(zoo)
z <- zoo(1:1000, as.Date("1932-01-01") + 0:999)
library(lubridate)
aggregate(z, day, mean)
aggregate(z, month, mean)
aggregate(z, year, mean)
2b) tổng hợp sử dụng sử ký
library(zoo)
z <- zoo(1:1000, as.Date("1932-01-01") + 0:999)
library(chron)
mdy <- month.day.year(time(z))
aggregate(z, mdy$day, mean)
aggregate(z, mdy$month, mean)
aggregate(z, mdy$year, mean)
# or
ct <- as.chron(time(z))
aggregate(z, days(ct), mean)
aggregate(z, months(ct), mean)
aggregate(z, years(ct), mean)
# days(ct) and years(ct) can actually
# be shortened to just days and years within the above context
# (and that would work for months too except they would be out of order)
aggregate(z, days, mean)
aggregate(z, years, mean)
2c) tổng hợp sử dụng yearmon
Nếu chúng ta muốn tóm tắt mỗi năm/tháng chứ không phải lumping tất cả các tháng Tháng một với nhau, tất cả các tháng tháng hai với nhau, vv Sau đó chúng ta cần không phải Sử ký cũng không lubridate nhưng thay vì có thể sử dụng sở thú của yearmon
:
library(zoo)
z <- zoo(1:1000, as.Date("1932-01-01") + 0:999)
aggregate(z, yearmon, mean)
nhờ nhưng nó không hoạt động: 'Lỗi trong format.default (cấu trúc (as.character (x), tên = tên (x), mờ mờ = (x),: không hợp lệ 'cắt' argument' – sbg
Có vẻ như ngày của bạn là các yếu tố. Bạn có thể sử dụng hàm str() để đảm bảo rằng ngày tháng thực sự là ngày tháng. –