Uploading the data

H_2015 <- read.csv("2015.csv")
H_2016 <- read.csv("2016.csv")
H_2017 <- read.csv("2017.csv")
H_2018 <- read.csv("2018.csv")
H_2019 <- read.csv("2019.csv")

Changing names for columns 2018 and 2019

colnames(H_2018)[2] <- "Country"
colnames(H_2019)[2] <- "Country"

Ordering data by country

years <- c("H_2015", "H_2016", "H_2017", "H_2018", "H_2019")
for(i in 1:5){
  cyr <- get(years[i])
  df <- order(cyr$Country)
  cyr <- cyr[df, ]
  assign(years[i], cyr)
  
  
}

Finding out which countries are not in the same years

missing_list <- paste("missing_", 2015:2019, sep = "")

for(i in 1:5){
  temp <- 0
  for(j in 1:4){
    df <- years[i] == years
    yr <- years[!df]
    cyr <- get(years[i])
    cyr2 <- get(yr[j])
    missing <- is.element(cyr$Country,cyr2$Country)
    if(sum(!missing != 0)){
       misel <- cyr$Country[!missing]
       if(temp[1] == 0){
         temp <- misel
       }
       else{
         temp <- c(temp, misel)
       }
    }}
  assign(missing_list[i], unique(temp))}

Getting rid of countries in missing lists

for(i in 1:5){
  cyr <- get(years[i])
  missing <- is.element(cyr$Country, get(missing_list[i]))
  cyr <- cyr[!missing,]
  assign(years[i], cyr)
}

Creating a dataframe with happiness score for 2015 - 2019

for(i in 1:3){
  cyr <- get(years[i])
  colnames(cyr)[4] <- "Score"
  assign(years[i], cyr)
}
H_years <- data.frame(H_2015$Country)
a <- 2
for(i in 1:5){
  cyr <- get(years[i])
  H_years[,a] <- cyr$Score
  a <- a+1
}
colnames(H_years) <- c("Country", 2015, 2016, 2017, 2018, 2019)

Showing Increase Decrease

happiness_changes <- data.frame(H_2015$Country)
for(i in 2:5){
  happiness_changes[,i] <- (H_years[,i] - H_years[,i+1])
}
colnames(happiness_changes) <- c("Country", "15 - 16", "16 - 17", "17 - 18", "18 - 19")
happiness_changes