2016-11-21 21 views
-1

私は、1年間のイベントの収集(1日に複数のイベント)のデータセットを持っています。変数には、日付、開始時刻、終了時刻などが含まれます。私は、これらの出来事がどれだけ毎日重複しているかを調べようとしています。私のループを簡単にするために、私は最初にExcelファイルを日付順にソートしてから開始時刻までにソートしました。私は、ループの一般的な考えを持っているが、R.1つのデータセット内でオーバーラップカウント

と互換性を持たせる方法を見つけ出すことはできません 私の考えが重なっている時間をカウントするための空の配列を初期化することである

、各日まで ループ、各イベントを通じて ループ開始時刻、 次のイベントが重複していないかどうかを確認するには、 に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でそのようなループを作成してください。

関連する問題