基于第一行值对观察进行分组

时间:2015-06-22 10:52:34

标签: r

我有这个数据框:

    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"))

1 个答案:

答案 0 :(得分:3)

mydf$group <- cumsum(mydf$newsess)