我在数据集中有3000个人,每个人都有心率作为时间序列。 时间序列间隔为24小时,每小时最多有6个值,每个人最多总共24 * 6 = 144个值(通常较少)。 对于每个人,我想提取他在时间间隔内的“偷看”数量。
我已经检查过并且没有找到任何函数计算或者给出的时间超过了间隔的“绝对最小值/最大值”。
我添加了一个我需要的例子,在下图中虽然有一个绝对最小值和最大值,但我需要整个四点(最多2个点和2个点)。
我真的不知道如何提取创建我的一个函数和使用大量for循环的期望,这是不好的。
你可以帮忙吗?时间序列的样本:
dput(小时[1:20,])
structure(list(ID = c(5838L, 5838L, 5838L, 5838L, 5838L, 5838L,
5838L, 5838L, 5838L, 5838L, 5838L, 5838L, 5838L, 5838L, 5838L,
5983L, 5983L, 5983L, 5983L, 5983L), Heart.Rate = c(103L, 109L,
109L, 109L, 111L, 111L, 120L, 122L, 125L, 62L, 73L, 84L, 92L,
97L, 98L, 101L, 105L, 105L, 106L, 106L), Time = structure(c(1077080040,
1077083640, 1077084000, 1077084240, 1077083040, 1077085440, 1077082440,
1077081240, 1077081840, 1077086640, 1077087240, 1077084900, 1077080700,
1077080400, 1077086040, 1088496000, 1088494680, 1088495280, 1088498280,
1088504880), class = c("POSIXct", "POSIXt"), tzone = "UTC")), .Names = c("ID",
"Heart.Rate", "Time"), row.names = c(NA, 20L), class = "data.frame")