考虑单调递增的整数序列,例如:
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)
将无法正常工作,因为它没有适当地“重置”。
答案 0 :(得分:4)
我们可以试试
v1 <- x %/% 5
match(v1, unique(v1))-1
#[1] 0 0 1 1 2 3 3 4 4