1) ts. Do đây là một chuỗi thời gian thường xuyên khoảng cách, chuyển nó sang một loạt ts
và sau đó tổng hợp nó từ tần số từ 24 đến tần số 1:
> aggregate(ts(x2[, 2], freq = 24), 1, mean)
cho:
Time Series:
Start = 1
End = 4
Frequency = 1
[1] 108.5 132.5 156.5 180.5
2) sở thú. Ở đây nó đang sử dụng sở thú. Gói sở thú cũng có thể xử lý hàng loạt khoảng cách bất thường (nếu chúng ta cần mở rộng này). Dưới đây day.hour
là số ngày (1, 2, 3, 4) cộng với giờ như là một phần nhỏ trong ngày để floor(day.hour)
là chỉ số trong ngày:
> library(zoo)
> day.hour <- seq(1, length = length(x2[, 2]), by = 1/24)
> z <- zoo(x2[, 2], day.hour)
> aggregate(z, floor, mean)
1 2 3 4
108.5 132.5 156.5 180.5
Nếu zz
là sản phẩm sau đó coredata(zz)
và time(zz)
là các giá trị và thời gian, tương ứng, như các vectơ thông thường.
Nguồn
2011-01-14 13:35:28
@SnowFrog Bạn đã sai. tapply không tạo ra một khung dữ liệu. Nó tạo ra một vector (trong trường hợp này). Sự khác biệt lớn. –
Một vấn đề với phương thức 'tapply' là nó tạo ra một vectơ (số cột = số ngày).Phương thức 'aggregate' tạo ra một khung dữ liệu (1 cột với số hàng = số ngày), có thể thực tế hơn nếu thao tác sau đó của dữ liệu là cần thiết. – SnowFrog