r - 按数据帧中每个递增顺序分组

标签 r grouping sequence

如果我的数据框具有一列单调递增的值,例如:

x
1
2
3
4
1
2
3
1
2
3
4
5
6
1
2

我如何添加一列来对每个递增序列进行分组,从而导致:
x   y
1   1
2   1
3   1
4   1
1   2
2   2
3   2
1   3
2   3
3   3
4   3
5   3
6   3
1   4
2   4

我只能想到使用一个缓慢的循环。

最佳答案

您可以选择cumsum函数来实现。

> x <- c(1,2,3,4,1,2,3,1,2,4,5,1,2)
> cumsum(x==1)
 [1] 1 1 1 1 2 2 2 3 3 3 3 4 4

关于r - 按数据帧中每个递增顺序分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49898643/

相关文章:

r - 使用(如果可能)函数方法修改基于正则表达式 (regex) 向量的向量

r - 在r中使用group_by函数后如何选择最低值或删除重复项

php - 使用 PHP 从数组和给定模式中获取最接近的序列结果

java - request.getParameterNames() 的顺序

r - R : separate numbers by hyphen, 中的连续引用编号如果是连续的 - 如果不是则添加逗号

r - 如何为列中每组相同值分配唯一的 ID 号

r - 如何将向量转换为具有固定维数的数据帧

r - 如何在其中一个方面添加一条线?

python - 遍历字典列表和按键分组

tsql - 如何对父子行进行分组 (SQL)