基于重置的差异对一系列单调增加的整数进行分组

时间:2016-11-19 12:56:38

标签: r grouping sequence

考虑单调递增的整数序列,例如:

x <- c(0, 3, 5, 8, 10, 16, 18, 35, 36)

我想根据彼此之间的差异对这些进行分组。如果差异小于或等于4,我希望它们属于同一组 - 但是一旦分配了组,差异就需要重置。

#    x desired_group
# 1  0             0
# 2  3             0
# 3  5             1
# 4  8             1
# 5 10             2
# 6 16             3
# 7 18             3
# 8 35             4
# 9 36             4

{0,3}因为它们在4以内,所以一旦我们达到5,该分组需要重置。也就是说,floor(x / 4)将无法正常工作,因为它没有适当地“重置”。

1 个答案:

答案 0 :(得分:4)

我们可以试试

v1 <- x %/% 5
match(v1, unique(v1))-1
#[1] 0 0 1 1 2 3 3 4 4