Ответ Вальди великолепен, а openxlsx великолепен. В качестве альтернативы для тех, кто столкнется с этим в будущем, вы также можете использовать janitor:
df <- tribble(~Date, ~sim, ~obs,
43091.25, 313.6222956, 314.39,
43093.25, 313.60034200000001, 314.43,
43094.25, 313.608948, 314.31)
df %>%
mutate(Date = janitor::excel_numeric_to_date(Date))
Производит:
Date sim obs
<date> <dbl> <dbl>
1 2017-12-22 314. 314.
2 2017-12-24 314. 314.
3 2017-12-25 314. 314.