こんにちは私はデータテーブルの値を条件とする値のグループを選択したいと思います。
具体的には、e == 1であるすべての正の値について、日付とIDでグループ化されたすべての列を選択したいと思います。
id date e logret
7 2011-07-29 1 -0.0272275211
7 2011-07-29 2 0.0034229025
7 2011-07-29 3 0.0042622177
8 2011-07-29 1 0.0035662770
8 2011-07-29 2 -0.0015268474
8 2011-07-29 3 0.0013333333
7 2011-07-30 1 0.0044444444
7 2011-07-30 2 -0.0001111111
7 2011-07-30 3 0.0013333333
ここでは、ID8と日付2011-07-29のすべての要素と日付2011-07-30のID7のすべての要素が選択されます。これは、e ==1のログレットが>0であるため、2011年のid7のすべての要素として- 07-29は、最初のログレット(e == 1)が0未満であるため、無視されます。
回答:
8 2011-07-29 1 0.0035662770
8 2011-07-29 2 -0.0015268474
8 2011-07-29 3 0.0013333333
7 2011-07-30 1 0.0044444444
7 2011-07-30 2 -0.0001111111
7 2011-07-30 3 0.0013333333
SQLでは、これを実現するために、ある種の副選択を使用します。私は...するだろう :
1) Select the id and date where e=1 and logret > 0
2) Select * join on results of subselect
data.tableでもこれを実行できると思いますが、data.tableの用語で表現するのは難しいと感じています。具体的には、ステップ1を複製できますが、ステップ2の結合部分を実行できません。
pos <- DT[e==1][logret > 0]
しかし、pos値をDTに戻すことはできません