【发布时间】:2020-07-28 20:06:56
【问题描述】:
我有多个系列的时间点。一些系列有五个时间点,其他系列有十个或十五个时间点。该系列是五的倍数,因为我测量的事件总是五个时间点长;有些录音连续有多个事件。例如:
系列 1:
- 0
- 77
- 98
- 125
- 174
系列 2:
- 0
- 69
- 95
- 117
- 179
- 201
- 222
- 246
- 277
- 293
0 标志着每个系列的开始。系列 1 是单个事件,但系列 2 是连续两个事件。系列 2 中的第 6 个时间点是该系列中第二个事件的开始。
我有一个 R 数据框,它在一列中包含每个时间点:
dd <- data.frame(
timepoint=c(0, 77, 98, 125, 174,
0, 69, 95, 117, 179, 201, 222, 246, 277, 293)
)
我需要知道从每个事件开始到每个事件的第 4 个时间点的持续时间。对于上述数据,这意味着:
- 持续时间 1:125 - 0 = 125
- 持续时间 2:179 - 0 = 179
- 持续时间 3:277 - 201 = 76
我如何编写一段简单的 R 代码来告诉我该间隔的持续时间,而不管有多少系列或事件,即不管列中有多少数字?
我尝试使用 diff() 和 seq_along(),但这似乎只对每第 n 个数字有用,在这种情况下不起作用。
diff(vec[seq_along(vec) %% 4 == 1])
【问题讨论】:
标签: r