Выбор группы R зависит от значения в data.table

Привет, я хочу выбрать группу значений, зависящих от значения в таблице данных.

В частности, я хотел бы выбрать все столбцы, сгруппированные по дате и идентификатору, для всех положительных значений, где e == 1

   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

здесь будут выбраны все элементы для идентификатора 8 и даты 2011 -07 -29 и все элементы идентификатора 7 для даты 2011 -07 -30, поскольку логрет для e == 1 > 0, где как все элементы id 7 на 2011 -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

6
задан Matt Dowle 8 August 2012 в 14:04
поделиться