Мне интересно, был ли гораздо более быстрый способ использования data.table / dplyr для замены значений на основе предыдущих значений на группы.
Предположим, что моя исходная таблица данных выглядит следующим образом:
DT_orig <- data.table(name = c("A", "A", "A", "B", "B", "B"),
year = c("2001", "2002", "2003", "2001", "2002", "2003"),
treat = c(1,0,0, 0,0,1))
Это выглядит следующим образом:
name year treat
1: A 2001 1
2: A 2002 0
3: A 2003 0
4: B 2001 0
5: B 2002 0
6: B 2003 1
Здесь для каждого индивидуума (имя) и периода времени (года) существует столбец (лечить), который указывает, назначен ли им курс лечения или нет.
Я рассматриваю альтернативное лечение, при котором после лечения индивида лечение остается. Таким образом, измененная таблица данных должна выглядеть следующим образом:
name year treat
1: A 2001 1
2: A 2002 1
3: A 2003 1
4: B 2001 0
5: B 2002 0
6: B 2003 1
Обратите внимание, что для человека А, проходившего курс лечения в 2001 году, подразумевается, что он подвергался "лечению" и в последующие годы.
Поскольку у меня очень большая таблица данных, мне было интересно, есть ли очень быстрый способ изменить это.