可能这是一个简单的问题,我不知道我必须搜索什么术语,但我还没有找到任何东西。
我有一个 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] 删除。
我来说两句