2016-11-21 26 views
-1

我有一個數據集,它是一整年的事件(每天多個事件)的集合。變量包括日期,開始時間和結束時間(等等)。我試圖找出有多少這些事件每天重疊。爲了簡化我的循環,我首先按日期排序了我的excel文件,然後按開始時間排序。我有循環的一般想法,但不知道如何使它與R兼容。計數一個數據集中的重疊

我的想法是初始化一個空數組以計算時間重疊,通過每個日期循環 ,循環遍歷每個事件開始時間, 檢查下一個事件是否重疊, 加1到我的時間重疊計數器陣列。 這樣我可以看到每天有多少事件與另一個事件重疊。

任何幫助將不勝感激。

overlaps = NULL 
for (n in date) { 
    for (i in start.time) { 

     if (start.time[i] < start.time[i+1] 
      || end.time[i] < start.time[i+1]) { 
     overlaps = overlaps + 1 
     } 
    } 
    } 
+0

如果包含示例輸入和相應的輸出,它可能會有所幫助。一些指導在這裏:http://stackoverflow.com/a/28481250/ – Frank

回答

0

這裏是我的數據集的一部分:

dates <- as.POSIXct(c("2015-01-02", "2015-01-02", "2015-01-02", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05", "2015-01-05"), format="%Y-%m-%d") 

start.time <- c("8:04", "12:31", "22:33", "7:55", "9:56", "12:35", "12:36", "14:00", "14:05", "14:10", "16:53", "20:47", "21:54", "22:00", "22:09", "23:23") 

start.time <- as.POSIXct(paste(dates, start.time, sep = " ")) 

end.time <- c("9:12", "13:16", "23:08", "8:35", "10:44", "13:30", "13:14", "14:45", "14:43", "14:42", "17:23", "21:25", "22:32", "22:45", "22:31", "23:57") 

end.time <- as.POSIXct(paste(dates, end.time, sep = " ")) 

events <- data.frame(dates, start.time, end.time) 

##output## 
dates   start.time   end.time 
1 2015-01-02 2015-01-02 08:04:00 2015-01-02 09:12:00 
2 2015-01-02 2015-01-02 12:31:00 2015-01-02 13:16:00 
3 2015-01-02 2015-01-02 22:33:00 2015-01-02 23:08:00 
4 2015-01-05 2015-01-05 07:55:00 2015-01-05 08:35:00 
5 2015-01-05 2015-01-05 09:56:00 2015-01-05 10:44:00 
6 2015-01-05 2015-01-05 12:35:00 2015-01-05 13:30:00 
7 2015-01-05 2015-01-05 12:36:00 2015-01-05 13:14:00 
8 2015-01-05 2015-01-05 14:00:00 2015-01-05 14:45:00 
9 2015-01-05 2015-01-05 14:05:00 2015-01-05 14:43:00 
10 2015-01-05 2015-01-05 14:10:00 2015-01-05 14:42:00 
11 2015-01-05 2015-01-05 16:53:00 2015-01-05 17:23:00 
12 2015-01-05 2015-01-05 20:47:00 2015-01-05 21:25:00 
13 2015-01-05 2015-01-05 21:54:00 2015-01-05 22:32:00 
14 2015-01-05 2015-01-05 22:00:00 2015-01-05 22:45:00 
15 2015-01-05 2015-01-05 22:09:00 2015-01-05 22:31:00 
16 2015-01-05 2015-01-05 23:23:00 2015-01-05 23:57:00 

現在我需要弄清楚如何每一天算重疊事件的數量。我不能包含我在我的問題中發佈的循環的輸出,因爲它在R中沒有被正確寫入。我發佈了循環來從編程的角度展示我試圖用循環完成的事情,我只是不知道如何在R中創建這種循環。