0
ことで、このように私のデータテーブルを見て言ってやるがいい。、グループ
> data=data.table(id=c('1','1','1','1','1','2','2','2','2','2'),value=c(10,20,30,60,80,20,40,55, 90, 100))
> data
id value
1: 1 10
2: 1 20
3: 1 30
4: 1 60
5: 1 80
6: 2 20
7: 2 40
8: 2 55
9: 2 90
10: 2 100
私は指定された範囲で、idで、このテーブルのサブセットたいです。私は最初の行を選択したい場所
data.subset<- data[, .SD[c(1,1+60)], by="id"]
、プラス最初の行の値と60の合計は、最初の行の値は、各IDごとに異なるです:つまり、私はこの*のような何かをしたいと思います。
私は最初の行とN番目の行でこれを行う方法を理解しています。しかし、私はいくつかの静的な値(この場合は60)に対してこれをどうやって行うのか分かりません。
マイ所望の出力である:ID = 1について
> data.subset
id value
1: 1 10
2: 1 20
3: 1 30
4: 1 60
6: 2 20
7: 2 40
8: 2 55
:10 + 60 = 70、10の範囲内でこのように、選択値 - ID = 2については70
:20 + 60 =したがって、20〜80の範囲で値を選択してください。
*例として、これは適切ではないことがわかります。
'between()'も使用できます。 'data [、.SD [値、値[1]、60、インバウンド= TRUEの間]]、by = id]' – jazzurro