【发布时间】:2013-08-30 17:18:33
【问题描述】:
我有一个包含两个变量的数据集,一个是分组变量,另一个是值。数据按每个组内的值排序。我想将值变量切割成每个组内的一个因子,并且小于 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
【问题讨论】:
-
那么一个 val 为 142 的人在 grp=="a" 中会有什么组呢? (我认为您没有明确定义拆分规则。)
-
好的,我编辑了演示数据,希望现在可以理解了。
-
这不是很像this question,得到了很好的 Rcpp 答案吗?