我有以下个人数据,并且想要创建一个唯一的家庭标识符。每个人在家庭中已经有自己的排名,因此基本上排名1标志着新家庭的开始。 例如
rank name
1 John
2 Lisa
3 Stu
1 Phil
1 Mike
1 Florence
2 George
3 David
4 Diana
1 Eleanor
我正在寻找的结果是:
rank name id
1 John 1
2 Lisa 1
3 Stu 1
1 Phil 2
1 Mike 3
1 Florence 4
2 George 4
3 David 4
4 Diana 4
1 Eleanor 5
大约有320 000个人,因此组ID应该从1到sum(df $ rank [rank = 1])或类似的值。任何其他类型的唯一ID也可以使用,不必是seq(1,n,1)。
答案 0 :(得分:1)
<Button text="Tap me" (tap)="onTap($event)"></Button>
正如@Andre Elrico所指出的,如果任何行的df$id <- cumsum(df$rank == 1)
# rank name id
# 1 1 John 1
# 2 2 Lisa 1
# 3 3 Stu 1
# 4 1 Phil 2
# 5 1 Mike 3
# 6 1 Florence 4
# 7 2 George 4
# 8 3 David 4
# 9 4 Diana 4
# 10 1 Eleanor 5
为rank
,则上述方法将在随后的所有行中为NA
提供NA
如果您知道id
可能是rank
(而不是应该为1的情况),请改用下面的选项。
NA
使用的数据:
df$id <- cumsum(df$rank %in% 1)