У меня есть таблица с идентификаторами, датами остановки и начала. Мне нужно изменить новый столбец с именем «running_time_in_days», который находит разницу от даты начала одного года до состояния остановки следующих лет для каждого идентификатора (процесс переносится на 1 января, поэтому продолжительность - на новый год).
library(readr)
library(dplyr)
library(lubridate)
# read in some test data
test <- read_csv("id, measure, measure_date
1, start, 1998-10-3
1, stop, 1999-5-1
1, stop, 2000-4-15
1, start, 1999-11-9
2, stop, 2000-6-1
2, stop, 1999-5-25
2, start, 1999-12-1
2, start, 1998-11-12")
# format "measure_date" as a date
test$measure_date <- test$measure_date %>% as_date('%Y-%m-%d')
Вывод может выглядеть примерно так в широком формате:
id start stop duration
1 1998-10-03 1999-05-01 stop - start (days)
1 1999-05-01 2000-04-15 stop - start (days)
2 1998-11-12 1999-05-25 stop - start (days)
2 1999-12-01 2000-06-01 stop - start (days)