LoginSignup
12
11

More than 5 years have passed since last update.

時刻を5分間隔でまるめる

Last updated at Posted at 2014-06-27

時刻データをいろいろな間隔でまるめる(四捨五入)

round()関数で1時間毎にまるめる時は,"hours"と指定する
time.x1 <- as.POSIXct(c("2014-06-30 14:05:17","2014-06-30 13:45:17","2014-06-30 14:18:17"),
format = "%Y-%m-%d %H:%M:%S",tz="")
print(time.x1)
round(time.x1,"hours")

[1] "2014-06-30 14:05:17 JST" "2014-06-30 13:45:17 JST" "2014-06-30 14:18:17 JST"
[1] "2014-06-30 14:00:00 JST" "2014-06-30 14:00:00 JST" "2014-06-30 14:00:00 JST"

14:00:00にまるめられるのは,13:30:00から14:29:59まで

1分毎は,"mins"で指定する
round(time.x1,"mins")

半端な間隔でまるめたいときは,xtsパッケージのalign.time()を使う。
指定した時間間隔(秒)で切り上げるので,予めまるめたい時間間隔の半分の時間を引いておくと良い。

5分毎にまるめる align.time(time.x1 - 5*60/2, 5*60)

30分毎にまるめる align.time(time.x1 - 30*60/2, 30*60)

2時間毎にまるめる align.time(time.x1 - 2*60*60/2, 2*60*60)

plyr()が1.8.1にアップデートされてからround_any()関数が何故かおかしくなったのでメモ。round_any(time.x1, 5*60)で動いていたはず...

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11