我现在卡住了。 df1
包含以下变量:
serial
= 一群人id1
= 群体中的一个人 (例如,12 (serial) 1 (id1)
=群体12中的第一个人;12 2 = group 12 person 2, etc
. )'Day
'是第一天(或开始)记录的日期。
每个日期都包括相同数量的观察次数(例如95)。
day1 (Monday) = day11-day196
day2 (Tuesday) = day21-day296
day3 (Wednesday) = day31-day396
day4 (Thursday) = day41-day496
day5 (Friday) = day51-day596
day6 (Saturday) = day61-day696
day7 (Sunday) = day71-day796
df1的示例
serial id1 Day day1 day2 day3 day4 day5 day6 day7
12 1 Monday 2 1 2 1 1 3 1
123 1 Tuesday 0 3 0 3 3 0 3
10 1 Wednesday 0 3 3 3 3 3 3
我希望能够识别连续记录(日志之间没有间隙)和记录的总量。
开始连续记录的日期由 "Day" 变量确定。例如,连续记录的序列号为 12。记录始于星期一,并且在本周期间至少有一条记录(来自变量95)。在这一周(7 x 95 变量)中,共记录了11次。
非连续记录的 id 为 123,因为第3天和第6天之间有间隔。记录始于星期二,周三和周六之间有间隔。
最后,我想记录连续记录的持续时间。
样本输出:
serial id1 Duration Occurance Days
12 1 11 7 day1 day2 day3 day4 day5 day6 day7
123 1 12 0 0
10 1 18 5 day3 day4 day5 day6 day7
示例数据
structure(list(serial = c(12, 123, 10), id1 = c(1, 1, 1), Day = structure(1:3, .Label = c("Monday",
"Tuesday", "Wednesday"), class = "factor"), day1 = c(2, 0, 0),
day2 = c(1, 3, 3), day3 = c(2, 0, 3), day4 = c(1, 3, 3),
day5 = c(1, 3, 3), day6 = c(3, 0, 3), day7 = c(1, 3, 3)), row.names = c(NA,
3L), class = "data.frame")
相关帖子 R - 识别连续序列
2 1 0 1 0 5 3 4 3 2 1 7 5 0 1 3 2 4 3 5 7 9 0 1 3 4 2 4 2 7 9..
的情况。 - akrun