假设我有这个示例数据框:
set.seed(12345)
n1 <- 3
n2 <- 10
n3 <- 60
times <- seq(0, 100, 0.5)
individual <- c(rep(1, n1),
rep(2, n2),
rep(3, n3))
events <- c(sort(sample(times, n1)),
sort(sample(times, n2)),
sort(sample(times, n3)))
df <- data.frame(individual = individual, events = events)
这给了
> head(df, 10)
individual events
1 1 72.0
2 1 75.5
3 1 87.5
4 2 3.0
5 2 14.5
6 2 16.5
7 2 32.0
8 2 45.5
9 2 50.0
10 2 70.5
我想绘制一个事件的累积步骤图,以便每个个体都有一条线,每次“遇到”一个事件时,该线就会上升1。
例如,个体1将从0上升到72.0,然后上升到1,直到75.5时变为2,并在87.5上升到3,一直到图表的结尾。
最简单的方法是什么?
df$counter <- ave(df$individual, df$individual, FUN = seq_along)
有帮助吗?不确定你想要什么样的图表,但这应该可以给你“事件计数”。 - vaettchen