2013-12-10 66 views
0

R的新手:如果我對同一個ID有多個觀察值。如何知道事件1是發生在每個ID的事件2之前,之後還是同時?如何判斷事件1發生在事件2之前,之後還是與事件2同時?

ID是一個整數。每個ID的觀測數量都不相同。時間就是時間段; 1,2,...噸。事件1和2是0/1假人。

我需要能夠計算事件1發生之前,之後或與事件2同時發生的次數。似乎這應該是非常簡單/直接的,但我沒有任何運氣。

UPDATE:這應該給數據的意義:

my.df <- structure(list(ID = c(1L, 1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L, 3L, 
3L, 3L), Time = c(1L, 2L, 3L, 4L, 1L, 2L, 3L, 1L, 2L, 3L, 4L, 
5L), Event.1 = c(0L, 1L, 0L, 1L, 0L, 1L, 0L, 0L, 0L, 1L, 1L, 
1L), Event.2 = c(1L, 0L, 0L, 0L, 0L, 1L, 1L, 1L, 1L, 1L, 0L, 
0L)), .Names = c("ID", "Time", "Event.1", "Event.2"), class = "data.frame", row.names = c(NA, 
-12L)) 

謝謝!

+1

請張貼一些數據。 – Fernando

+1

讓你的問題[reproducible](http://stackoverflow.com/q/5963269/1315767) –

+0

你應該提供數據,因爲它沒有很好的定義。例如,event1和event2是否發生相同的時間? – agstudy

回答

0

假設你要算Event.1 Event.2之前做過多久發生每個ID,這將是使用ddply

ddply(
    my.df, .(ID), summarize, 
    Event.1 = sum(Event.1[ seq_len(which.max(Event.2)) ]) 
) 

快捷賦予

ID Event.1 
1 1  0 
2 2  1 
3 3  0 
相關問題