Привет, я хочу выбрать группу значений, зависящих от значения в таблице данных.
В частности, я хотел бы выбрать все столбцы, сгруппированные по дате и идентификатору, для всех положительных значений, где 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