Существует множество способов помочь подобной проблеме, но я бы, вероятно, атаковал ее так:
library(tidyverse)
zips <- tibble::tribble(
~Year, ~Zip, ~Total_Population, ~Median_Income, ~City,
2013, "ZCTA5 43001", 2475, 87333, "Alexandria OH",
2013, "ZCTA5 43002", 2753, 83873, "Amlin OH",
2014, "ZCTA5 43003", 2366, 46691, "Ashley OH",
2014, "ZCTA5 43001", 24625, 70809, "Blacklick OH",
2014, "ZCTA5 43005", 155, 43810, "Bladensburg OH",
2015, "ZCTA5 43006", 705, 45673, "Brinkhaven OH",
2015, "ZCTA5 43001", 2430, 28422, "Buckeye Lake OH",
2016, "ZCTA5 43009", 2036, 62188, "Cable OH",
2016, "ZCTA5 43010", 386, 34625, "Catawba OH",
2016, "ZCTA5 43001", 7733, 66548, "Centerburg OH"
)
diff <- zips %>% dplyr::filter(Year %in% c(2013,2016)) %>%
spread(Year,Total_Population) %>% group_by(Zip) %>%
summarise(`Total2013` = sum(`2013`, na.rm = TRUE),
`Total2016` = sum(`2016`, na.rm = TRUE)) %>%
mutate(Difference = Total2013- Total2016)
diff
Вы должны разбить свою проблему на более мелкие кусочки, а не пытаться думать, что есть только одна функция, которая может выполнить то, что вы ищете.