اقتطاع سلسلة زمنية حديقة الحيوان إلى أقرب 10 دقائق
-
29-10-2019 - |
سؤال
لدي سلسلة زمنية لحديقة الحيوان على النحو التالي:
>> head(ww)
(11/22/08 11:37:00) (11/22/08 12:07:00) (11/22/08 12:22:00) (11/22/08 12:37:00)
0.087114 0.055422 0.055250 0.059483
(11/22/08 12:52:00) (11/22/08 13:07:00)
0.057896 0.061808
كما ترون ، فإن الأوقات هي 11:37, 12:07, 12:22 الخ.أود تغيير هذه الأوقات إلى أقرب مضاعفات كاملة من عشر دقائق-على سبيل المثال س س:10 ، س س:20.في هذه الحالة 11:37 ستصبح 11:40 ، 12:07 ستصبح 12:10 و 12:22 ستصبح 12: 20.
لقد وجدت كيفية تجميعها إلى أقرب دقيقة:
wholemin <- function(x) trunc(x, units="minutes")
result = aggregate(r, wholemin, head, 1)
لكن لا يمكنني استخدام trunc
للتجميع إلى أي شيء آخر غير الثواني والدقائق والساعات وما إلى ذلك.
كيف يجب أن أذهب عن القيام بذلك?
لسهولة الأمثلة ، إخراج dput(head(ww)
أدناه:
structure(c(0.087114, 0.055422, 0.05525, 0.059483, 0.057896,
0.061808), index = structure(c(14205.4840277778, 14205.5048611111,
14205.5152777778, 14205.5256944444, 14205.5361111111, 14205.5465277778
), format = structure(c("m/d/y", "h:m:s"), .Names = c("dates",
"times")), origin = structure(c(1, 1, 1970), .Names = c("month",
"day", "year")), class = c("chron", "dates", "times")), class = "zoo")
المحلول
جرب هذا:
to10 <- function(tt) trunc(tt + as.numeric(times("00:05:00")), units = "00:10:00")
aggregate(z, to10, mean)
وانظر الأمثلة في ?trunc.times
و ?aggregate.zoo
.
لا تنتمي إلى StackOverflow