【发布时间】:2021-04-09 21:01:15
【问题描述】:
我有以下数据集:
ID<-rep(c("A","B"),times=c(4,8))
Group<-c(1,1,0,1,1,1,0,1,1,1,0,1)
data<-data.frame(ID,Group)
data
ID Group
A 1
A 1
A 0
A 1
B 1
B 1
B 0
B 1
B 1
B 1
B 0
B 1
我想创建一个名为“编号”的列,其中 Group=1 的连续行都分配了相同的编号。这个数字应该从 1 开始,并随着下一组连续行上升。当 Group = 0 时,我希望对应的 Number 值等于 0。 一旦 ID 更改,我还希望 Numbers 行重置为 1。
这是一个示例:
ID Group Number
A 1 1
A 1 1
A 0 0
A 1 2
B 1 1
B 1 1
B 0 0
B 1 2
B 1 2
B 1 2
B 0 0
B 1 3
我正在考虑在 Dplyr 中使用 group_by 和 mutate 函数,但我不确定除此之外还能做什么。任何帮助将不胜感激!
【问题讨论】: