Думаю, у меня довольно простая просьба. У меня есть следующий фрейм данных, где «место» - это уникальный идентификатор, а start_date и end_date могут перекрываться. Значения уникальны для каждого идентификатора «места».
place start_date end_date value
1 2007-09-01 2010-10-12 0.5
2 2013-09-27 2015-10-11 0.7
...
Мне нужно создать переменную на основе года, в которой я расширяю временной ряд на каждый год (начиная с первого января (т.е. -01-01) начинает новую строку для этого конкретного "места" и "значения". Я имею в виду что-то вроде этого:
place year value
1 2007 0.5
1 2008 0.5
1 2009 0.5
1 2010 0.5
2 2013 0.7
2 2014 0.7
2 2015 0.7
...
Есть некоторые случаи с перекрытием (ie. "Place" = 1 & "год" = 2007) для двух отдельных случаев, когда одно наблюдение начинается с одного года, а другое наблюдение продолжается с этого года. В этом случае я бы предпочел "значение", которое заканчивается этим указанным c годом. Итак если одно наблюдение для place = 1 заканчивается 2007 годом в марте, а другое place = 1 начинается с 2007 в апреле, значение year = 2007 для place = 1 будет отмечено предыдущим «конечным» значением, если это имеет смысл.
Я дошел только до этого: данные библиотеки (data.table) <- data.table (dat) data [, <code>:= (start_date = as.Date (start_date), end_date = as.Date (end_date)) ] data [, num_mons: = length (seq (from = start_date, to = end_date, by = 'y ear ')), by = 1: nrow (data)]
Думаю, написание al oop имеет наибольший смысл?
Спасибо за вашу помощь и совет.