我有这个数据框:
unixtime newsess
1 1412122086 1
2 1412122130 0
3 1412122191 0
4 1412122300 0
5 1412122443 0
6 1412122090 1
7 1412122124 0
8 1412122192 0
我需要这个:
unixtime newsess group
1 1412122086 1 1
2 1412122130 0 1
3 1412122191 0 1
4 1412122300 0 1
5 1412122443 0 1
6 1412122090 1 2
7 1412122124 0 2
8 1412122192 0 2
数据包含事件的有序时间戳,其中每个会话的第一个事件由1指示。任务是为每个事件分配唯一的会话标识符。
如何在R中执行此操作?我用谷歌搜索了一下,但似乎我用这个打了一堵墙。
我的示例数据可以使用:
创建mydf <- structure(list(unixtime = c(1412122086L, 1412122130L, 1412122191L,
1412122300L, 1412122443L, 1412122090L, 1412122124L, 1412122192L),
newsess = c(1L, 0L, 0L, 0L, 0L, 1L, 0L, 0L)), .Names = c("unixtime", "newsess"),
class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6","7", "8"))
答案 0 :(得分:3)
mydf$group <- cumsum(mydf$newsess)