首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为连续分组提供唯一标识符

为连续分组提供唯一标识符
EN

Stack Overflow用户
提问于 2016-07-20 01:07:38
回答 2查看 58关注 0票数 1

我正在尝试根据序列号来识别组。例如,我有一个数据帧,看起来像这样(简化):

代码语言:javascript
复制
UID
1
2
3
4
5
6
7
11
12
13
15
17
20
21
22

我想添加一列来标识何时有连续的数字分组,例如,1到7是第一个连续的,然后它们得到1,第二个连续的集合将得到2,依此类推。

代码语言:javascript
复制
UID Group
1   1
2   1
3   1
4   1
5   1
6   1
7   1
11  2
12  2
13  2
15  3
17  4
20  5
21  5
22  5

现有的代码都不能帮助我解决这个问题

EN

Stack Overflow用户

发布于 2016-07-20 01:34:56

我们还可以使用data.table中的shift函数来获取当前行和前一行之间的差异,获取逻辑向量的累积和,并将其分配给创建“Group”列。这样会更快。

代码语言:javascript
复制
library(data.table)
setDT(df1)[, Group := cumsum(UID- shift(UID, fill = UID[1])>1)+1]
df1
#    UID Group
# 1:   1     1
# 2:   2     1
# 3:   3     1
# 4:   4     1
# 5:   5     1
# 6:   6     1
# 7:   7     1
# 8:  11     2
# 9:  12     2
#10:  13     2
#11:  15     3
#12:  17     4
#13:  20     5
#14:  21     5
#15:  22     5
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38464551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档