XTSは良いものを持っていながら、私はtidyverseとtibblesに向かって移動しています。新しいtibbletimeパッケージもあります。ここで私はそれをやる方法です。
library(lubridate)
library(tidyverse)
tbl <- tibble(time = ymd_hms(time), value)
tbl %>%
mutate(day = date(time)) %>%
group_by(day) %>%
mutate(max = cummax(value),
min = cummin(value))
# A tibble: 12 x 5
# Groups: day [2]
time value day max min
<dttm> <dbl> <date> <dbl> <dbl>
1 2012-03-19 11:31:59 10.554327 2012-03-19 10.55433 10.554327
2 2012-03-19 12:32:59 9.719728 2012-03-19 10.55433 9.719728
3 2012-03-19 14:34:59 11.775163 2012-03-19 11.77516 9.719728
4 2012-03-19 15:36:59 10.187320 2012-03-19 11.77516 9.719728
5 2012-03-19 16:37:59 11.142526 2012-03-19 11.77516 9.719728
6 2012-03-19 17:38:59 10.415526 2012-03-19 11.77516 9.719728
7 2012-03-20 11:36:59 11.229507 2012-03-20 11.22951 11.229507
8 2012-03-20 12:37:59 10.236680 2012-03-20 11.22951 10.236680
9 2012-03-20 13:38:59 9.634617 2012-03-20 11.22951 9.634617
10 2012-03-20 14:36:59 11.105144 2012-03-20 11.22951 9.634617
11 2012-03-20 15:37:59 8.906406 2012-03-20 11.22951 8.906406
12 2012-03-20 16:38:59 10.461871 2012-03-20 11.22951 8.906406
データ:
time = c("2012-03-19 11:31:59", "2012-03-19 12:32:59", "2012-03-19 14:34:59",
"2012-03-19 15:36:59","2012-03-19 16:37:59", "2012-03-19 17:38:59",
"2012-03-20 11:36:59","2012-03-20 12:37:59", "2012-03-20 13:38:59",
"2012-03-20 14:36:59","2012-03-20 15:37:59", "2012-03-20 16:38:59")
set.seed(13)
value <- rnorm(12, mean = 10, sd = 1)
ボーナスtibbletime: すべてが正確に通常のtibbleのように動作しますが、時間を意識tibbletimeです。 xtsのような素晴らしい機能がたくさんあります。
library(tibbletime)
tbl_time <- tbl_time(tbl, index=time)
tbl_time %>%
group_by(date(time)) %>%
mutate(max = cummax(value),
min = cummin(value))
'?cummax'と'?cummin' –
チップをありがとう。それを毎日のデータポイントに個別に適用するにはどうすればよいですか? – TommyF
例を追加しました。 –