【发布时间】:2016-11-19 12:56:37
【问题描述】:
考虑一个单调递增的整数序列,例如:
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) 将不起作用,因为它没有适当地“重置”。
【问题讨论】:
-
你能测试一下
v1 <- x %/% 5;match(v1, unique(v1))-1#[1] 0 0 1 1 2 3 3 4 4 -
如果你有
x <- c(0, 3, 5, 8, 10, 16, 18, 35, 36, 789, 22)怎么办 -
哦,好的。没问题@akrun
-
@JasonAizkalns 找到了!我没有将其发布为答案,因为我知道我在其他地方看到了它...here you go... 最后我在该帖子上也有
rleid答案 -
@akrun 尝试澄清问题here