分配组ID STA ...
通知
清除全部

分配组ID从0开始,并在R中以1结束

RSS

(@abhijith)
贵族成员
加入:2年前
帖子:1350
14/05/2021 12:16 PM

我有以下数据集:

dt < - data.drame(v1 = c(0,0,0,0,1,0,0,1))

由此,我只是想创建一个ID,以1的值停止。

ID应该是

ID <-c(1,2,3,4,1,2,3)


引用
(@ganesh)
贵族成员
加入:2年前
帖子:1362
14/05/2021 12:19 PM

您可以简单地在基本R中使用AVE:

使用(dt,ave(v1,c(0,cumsum(v1)[ - 长度(v1)])),fun = seq_along))

#[1] 1 2 3 4 1 2 3

或者,如果您在dplyr中也可以使用lag(),并且只需创建组,就可以在每个组中分配行号:

图书馆(dplyr)

dt%>%group_by(gr = lag(cumsum(v1),默认= 0))%>%突变(id = row_number())


回复引用
分享:
Baidu