R的新功能:如果我对同一ID有多个观察结果,我如何判断每个ID的事件1是在事件2之前、之后还是同时发生?
ID是一个整数。每个ID的观测次数各不相同。时间就是时间段;1,2,。。。t.事件1和2是0/1伪事件。
我需要能够计算事件1在事件2之前、之后或同时发生的次数。看起来这应该很简单/直截了当,但我运气不好。
更新:这应该会给人一种数据的感觉:
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))
谢谢!
假设您想计算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