标识两个值之间的观察值的组变量

拯救梦想

可能这是一个简单的问题,我不知道我必须搜索什么术语,但我还没有找到任何东西。

我有一个 data.table(我已经习惯了)或 data.frame 像这样:

a = rep(1, 8)
b = rep(c("20","30", "180", "10"), each = 1)
df = data.table(a,b)

df

  a   b
1 1  20
2 1  30
3 1 180
4 1  10
5 1  20
6 1  30
7 1 180
8 1  10

我想获得一个变量,该变量标识出现在第一个和最后一个观察值之间的观察值组,其值 b 高于或等于 180。像这样:

  a   b  c
1 1  20  1
2 1  30  1
3 1 180  2
4 1  10  2
5 1  20  2
6 1  30  2
7 1 180  3
8 1  10  3

任何帮助都会非常有帮助!如果在任何地方都存在这样的问题,如果您告诉我要查看,我将不胜感激。

提前致谢 :)

罗纳克·沙阿

我们可以cumsum在更改列的类后使用

library(data.table)

df <- type.convert(df)
setDT(df)

df[, c := cumsum(b >= 180) + 1]


#   a   b c
#1: 1  20 1
#2: 1  30 1
#3: 1 180 2
#4: 1  10 2
#5: 1  20 2
#6: 1  30 2
#7: 1 180 3
#8: 1  10 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章