Я надеюсь создать новую переменную в datatable, в которую будет добавлен столбец, сообщающий мне количество дней с момента наступления противоположного события (или другого события).
Набор данных, который у меня есть, выглядит следующим образом:
date event id obs_since_event_1 obs_since_event_2
2000-07-06 2 1 NA NA
2000-07-07 1 1 NA 1
2000-07-09 0 1 1 2
2000-07-10 0 1 2 3
2000-07-15 2 1 3 4
2000-07-16 1 1 4 1
2000-07-20 0 1 1 2
2000-07-21 1 1 2 3
2000-07-06 1 2 NA NA
2000-07-07 2 2 1 NA
2000-07-15 0 2 2 1
2000-07-16 0 2 3 2
2000-07-17 2 2 4 3
2000-07-18 1 2 5 1
И я надеюсь добавить столбец с именем days_since_opposite. который записывает количество дней с момента возникновения противоположного события (противоположные события 1 и 2). У меня уже есть количество дней с тех пор, как произошло событие 1 или 2. Теперь мне нужно разработать оператор if, который работает в таблицах данных, который предоставит мне соответствующие значения в последнем столбце.
date event id obs_since_event_1 obs_since_event_2 days_since_opposite
2000-07-06 2 1 NA NA NA
2000-07-07 1 1 NA 1 NA
2000-07-09 0 1 1 2 NA
2000-07-10 0 1 2 3 NA
2000-07-15 2 1 3 4 3
2000-07-16 1 1 4 1 1
2000-07-20 0 1 1 2 NA
2000-07-21 1 1 2 3 3
Надеюсь, это понятно. У меня также есть разные идентификаторы, но я не уверен, влияет ли это на результаты.
Я пробовал что-то вроде следующего, но это не сработало:
data[,days_since_opposite:=ifelse(event==1,obs_since_event_2,ifelse(event==2,obs_since_event_1,0)),]
Заранее спасибо
ДАННЫЕ
Input = (
' date event id obs_since_event_1 obs_since_event_2
2000-07-06 2 1 NA NA
2000-07-07 1 1 NA 1
2000-07-09 0 1 1 2
2000-07-10 0 1 2 3
2000-07-15 2 1 3 4
2000-07-16 1 1 4 1
2000-07-20 0 1 1 2
2000-07-21 1 1 2 3
2000-07-06 1 2 NA NA
2000-07-07 2 2 1 NA
2000-07-15 0 2 2 1
2000-07-16 0 2 3 2
2000-07-17 2 2 4 3
2000-07-18 1 2 5 1')
df = read.table(textConnection(Input), header = T)