2015-10-16
10分単位でgroup_byして集計したい
分を抽出して10分単位でfloorして、1時間単位でfloorしたデータと足し合わせる。
たまにしかやらないので忘れてしまう。
というか以下の記事でも言及しているようにxtsパッケージとか使えばもっとスマートに書けるんじゃないのか。
http://notchained.hatenablog.com/entry/2015/09/22/072820
library("dplyr") library("lubridate") res <- df %>% group_by(m=floor_date(time, unit = "hour") + minutes(floor(minute(time) / 10) * 10)) %>% summarise(count=sum(hoge))
あと、ミリ秒が入っていたときの書式もよく忘れる。
%Sの代わりに%OSを使えばよい。
as.POSIXctを使えばこんなこと気にしなくても良いのだが、いかんせん遅い。
lubridateパッケージのfast_strptimeは速いが書式とタイムゾーンを指定する必要がある。
タイムゾーン指定するときは+09を末尾につけて、書式で%zを指定しておくこと。
df$time <- lubridate::fast_strptime(paste0(df$StartDate,df$StartTime,"+09"), format="%Y-%m-%d%H:%M:%OS%z", tz="Asia/Tokyo")
トラックバック - http://d.hatena.ne.jp/dichika/20151016/p1
リンク元
- 23 https://www.google.co.jp/
- 12 https://www.google.co.jp
- 8 http://t.co/lon9D04gaG
- 5 http://b.hatena.ne.jp/
- 3 http://www.google.co.jp/url?url=http://d.hatena.ne.jp/dichika/20150429/p1&rct=j&frm=1&q=&esrc=s&sa=U&ved=0CC4QFjADahUKEwjgu6jSoMbIAhWKn5QKHeeEAwk&usg=AFQjCNGv8CEcJEsVfC68SJBvhgdmlujDyg
- 2 http://qiita.com/hoxo_m/items/f2f1793c6f086d381340
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=25&cad=rja&uact=8&ved=0CDkQFjAEOBRqFQoTCLz2vZClxsgCFYomlAodOGQBFQ&url=http://d.hatena.ne.jp/dichika/20130501/p1&usg=AFQjCNHs5QXxgOQcT-Z4upfktF9L7hhbLQ&bvm=bv.105039540,d.dGo
- 2 http://www.yahoo.co.jp/
- 1 http://a.hatena.ne.jp/langstat/
- 1 http://b.hatena.ne.jp/Keiku/favorite