I have data about number of people living in Wrocław:
Pop <- data.frame(Year = c(850, 1000, 1200,  1300,  1350,  1318,  1327,  1329), 
                    Pop  = c(800, 2250, 5000, 13500, 14000, 13600, 12000, 15950))
Is there a way to change it, that each year is separate row and the data is interpolated?
Pop_long <- data.frame(Year = 850:1329, Pop = 850, ....)
The interpolation would be linear. I have done if, but I bet there is a better way:
Pop <- Pop
  mutate(Year_lead = lead(Year),
         Pop_lead  = lead(Pop),
         Year_diff = Year_lead - Year,
         Pop_diff  = Pop_lead  - Pop,
         Pop_add   = Pop_diff / Year_diff) %>%
  select(Year, Pop, Pop_add) 
Pop_long <- data.frame(Year = 850:1329) %>%
  merge(Pop, all.x = T)    
for(i in 1:nrow(Pop_long)){ 
  if(is.na(Pop_long[i, "Pop"])) {
    Pop_long[i, "Pop"]     <- Pop_long[i - 1, "Pop_add"] + Pop_long[i - 1, "Pop"] 
    Pop_long[i, "Pop_add"] <- Pop_long[i - 1, "Pop_add"] 
  }
}
 
     
    
