predict.gdp.con <- function(coefs, con){ if(con == "Africa"){ coefs[1] }else if(con == "Americas"){ coefs[1] + coefs[2] }else if(con == "Asia"){ coefs[1] + coefs[3] }else if(con == "Europe"){ coefs[1] + coefs[4] }else if(con == "Oceania"){ coefs[1] + coefs[5] } } worst.preds.year <- function(y, gap){ gap.y <- gap %>% filter(year == y) fit <- lm(lifeExp ~ continent + log(gdpPercap), data = gap.y) gap.y$pred <- predict(fit, newdata = gap.y) gap.y$err <- abs(gap.y$pred - gap.y$lifeExp) (gap.y %>% arrange(desc(err)))$country[1] } find.worst.preds <- function(gap){ years <- unique(gap$year) country <- sapply(X = years, FUN = worst.preds.year, gap = gap) data.frame(year = years, country = country) %>% arrange(year) }