Объедините данные в квантили, используя точки останова из одной группы - PullRequest
0 голосов
/ 19 мая 2019

Для каждого уровня "ts_id", как разрезать ВСЕ данные на 2 ячейки, используя медианное значение "s1", вычисленное с использованием строк с ex_id == 1?

DT = data.table(

     ts_id = c(rep(1,15),rep(2,15)),
     ex_id = c(rep(1,5),rep(2,10),rep(1,5),rep(2,10)),
     s1 = rnorm(30)

)

1 Ответ

0 голосов
/ 19 мая 2019

Может быть, это поможет.Укажите i с логическим выражением (ex_id == 1), сгруппированным по 'ts_id', split 's1' по логическому вектору, созданному путем сравнения значений 's1' с median из 's1' (здесь он изменяется на числовой индекс)

DT[ex_id==1,  list(split(s1, (s1 >= median(s1)) + 1)), ts_id]

ПРИМЕЧАНИЕ: ожидаемый результат не ясен

...