Вы можете просто сделать это:
as.Date(x, origin="1994-12-31")
Здесь я предполагаю, что у вас нет пробелов в датах и выстроены, как описано в вопросе, в противном случае это приведет к нежелательным результатам.
Пример данных :
df <- data.frame(Day = rep(c(1:365,1:2),each=3))
Создайте seq
, как это, используя rle
(кодирование длины серии)
df$seq <- data.table::rleid(df$Day)
df$date <- as.Date(df$seq, origin="1994-12-31") #final answer
tail(df,8)
Дайте мне знать,если это ваше ожидание
Пример вывода:
> tail(df,8)
Day seq date
1094 365 365 1995-12-31
1095 365 365 1995-12-31
1096 1 366 1996-01-01
1097 1 366 1996-01-01
1098 1 366 1996-01-01
1099 2 367 1996-01-02
1100 2 367 1996-01-02
1101 2 367 1996-01-02