新しい列を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)]
どのようにこれを行うには?