我有一个包含两个变量的数据集,一个是分组变量,另一个是值。数据按每个组内的值排序。我想将值变量切割成每个组内的一个因子,并且小于 diff(10) 的间隔。也就是说,如果 diff(val)>=10,则会创建一个新级别。下面是一个演示数据,newgrp
我想要的新变量在哪里。也许filter()
在这里是需要的,但我已经发呆了很长一段时间。有什么想法吗?
grp val newgrp
a 101 1
a 101 1
a 102 1
a 110 1
a 111 2 <-- a new level is created since 111 - 101 > 9
a 112 2
a 148 3 <-- a new level is created sine 152 - 148 > 9,
a 157 3
a 158 4 <-- a new level is created since 158 - 148>9
b 8 1 <-- levels start over for group b
b 9 1
b 12 1
b 17 1
b 18 2