2017-12-08 10 views
1

나는 여러 날에 걸쳐 큰 데이터 세트를 보유하고 있으며 각 날짜의 각 시간에 속하는 행의 수를 계산하는 새로운 벡터를 생성해야하며 그 사이의 시간은 0입니다 표현되지 않습니다 (따라서 하루에 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으로이를 수행 할 수 있습니다. '기간'열 날짜 클래스를 변환 한 후, 누락 된 순서

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에 대한 '날짜 1', complete별로 그룹화 Datehour에 따라 count를 얻을. 그것은 유망 해 보일 것이지만 그것은 꽤 바르게 수행하지 않습니다. 그것은 0 카운트가있는 대부분의 시간을 놓치고 있습니다. 현재 내가 얻는 결과는 29가 아닌 15 "N"값을 나타냅니다 (29/07/2012 20:00과 31/07/2012 01:00 사이에 29 시간)? – Noosentin

+0

@Noosentin'min (Hour) : 24'을 기준으로합니까? – akrun

+1

오른쪽으로! 너와 함께. 고마워요! – Noosentin