2017-12-08 6 views
1

私は数日間にわたる大きなデータセットを持ち、各日付の各時間に属する行の数をカウントする新しいベクトルを作成する必要があります。 (したがって、毎日のベクトルに24の値があります)。たとえば:R日付と時間による行数のカウント

Date  
29/07/2012 20:00:01 
29/07/2012 20:00:02 
29/07/2012 20:00:03 
29/07/2012 22:01:01 
29/07/2012 22:02:01 
29/07/2012 22:02:03 
30/07/2012 02:05:05 
30/07/2012 02:05:06 
30/07/2012 12:09:07 
30/07/2012 12:10:06 
31/07/2012 01:24:36 
31/07/2012 01:24:40 

は、私は似たもの(Count number of observations per day, month and year in RR group by date, and summarize the valuesを)見つけた

3,0,3,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,2 

のベクトルを与えるだろうが、彼らは時間を考慮していないとして、彼らはas.Dateを使用して、私はそうではありませんそれらを仕事に適応させることができました。

どうすればよいですか?ありがとう!

答えて

2

tidyverseでこれを行うことができます。 「日付」列のDateTimeクラスを変換した後、countDatehourに基づいて、「日付1」、欠落しているシーケンスのcomplete

library(tidyverse) 
df1 %>% 
    mutate(Date = dmy_hms(Date)) %>% 
    count(Date1 = as.Date(Date), Hour = hour(Date)) %>% 
    group_by(Date1) %>% 
    complete(Date1, Hour = min(Hour):24, fill = list(n = 0)) %>% 
    arrange(Date1, Hour) 
+0

おかげAkrunによってグループ化されます。それは有望に見えるが、それはかなり正しく実行されていない。それは0カウントがある時間のほとんどを欠いている。現在のところ、得られる出力には29の代わりに15の "N"の値が表示されます(29/07/2012 20:00から31/07/2012 01:00まで29時間)。 – Noosentin

+0

@Noosentin 'min(Hour):24'に基づいていますか – akrun

+1

右折!あなたと。どうもありがとうございました! – Noosentin

関連する問題