我試圖將新列添加到data.table
,其中行中的值取決於行中值的相對關係。更確切地說,如果連續有一個X值,我想知道在X-30範圍內同一列(和組)中還有多少個其他值。計算每個組的data.table的窗口中的值的數量
也就是說,給出這樣的:
DT<-data.table(
X = c(1, 2, 2, 1, 1, 2, 1, 2, 2, 1, 1, 1),
Y = c(100, 101, 133, 134, 150, 156, 190, 200, 201, 230, 233, 234),
Z = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12))
我想獲得一個新的列,其值:
N <- c(0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 2)
我試過以下,但我不明白的結果我可以使用:
DT[,list(Y,num=cumsum(Y[-.I]>DT[.I,Y]-30),Z),by=.(X)]
任何想法如何做到這一點? (?)