【发布时间】:2012-10-17 09:43:38
【问题描述】:
假设我有这个示例数据框
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:是的!
标签: r graph cumulative-sum