Análisis sobre el Índice de Libertad

# Librerias

library(plotly)
library(readr)
library(ggplot2)
library(reshape2)
library(formattable)
library(data.table)
library(StatMeasures)

# Levanto la base y la convierto en DF

libertad <- readr::read_csv("https://raw.githubusercontent.com/cienciadedatos/datos-de-miercoles/master/datos/2019/2019-08-14/libertad.csv")

#class(libertad)

libertad <- as.data.frame(libertad)

#head(libertad)
Revisando los datos recibidos:
formattable(contents(libertad))
variable class distinctValues missingValues perMissingValues sampleValue
anio integer 9 0 0.00 2011
codigo_iso character 162 0 0.00 GMB
pais character 161 0 0.00 Bhutan
region character 10 0 0.00 Sur de Asia
libertad_humana_puntaje numeric 390 80 5.49 5.47
libertad_humana_ranking integer 163 80 5.49 110
libertad_personal_puntaje numeric 472 80 5.49 6.37
libertad_personal_ranking integer 163 80 5.49 96
libertad_economica_puntaje numeric 354 80 5.49 7.73
libertad_economica_ranking integer 163 80 5.49 153
Algunos comentarios
table(is.na(libertad$libertad_humana_puntaje),libertad$pais)->a

as.data.frame(a)->a

a <- subset(a,a$Var1=="TRUE")

a <- subset(a,a$Freq>0)

as.character(unique(a$Var2))
##  [1] "Arabia Saudita"    "Bhutan"            "Bielorrusia"      
##  [4] "Brunei Darussalam" "Cabo Verde"        "Cambodia"         
##  [7] "Gambia"            "Guinea"            "Irak"             
## [10] "Laos"              "Líbano"            "Liberia"          
## [13] "Libia"             "Qatar"             "Seychelles"       
## [16] "Suazilandia"       "Sudán"             "Surinam"          
## [19] "Tayikistán"        "Timor-Leste"       "Yemen"
regiones <- libertad$region[match(a$Var2,libertad$pais)]

as.character(unique(regiones))
## [1] "Oriente Medio y Norte de África" "Sur de Asia"                    
## [3] "Europa del Este"                 "África Subsahariana"            
## [5] "Latinoamérica y el Caribe"       "Cáucaso y Asia Central"

Análisis comparativo de los Índices de Libertad

¿Cómo se distribuyen los valores de los índices?

libertad_humana <- data.frame(libertad[,1:4],
                              INDICE=libertad$libertad_humana_puntaje,
                              RANKING=libertad$libertad_humana_ranking)

libertad_personal <- data.frame(libertad[,1:4],
                              INDICE=libertad$libertad_personal_puntaje,
                              RANKING=libertad$libertad_personal_ranking)

libertad_economica <- data.frame(libertad[,1:4],
                              INDICE=libertad$libertad_economica_puntaje,
                              RANKING=libertad$libertad_economica_ranking)

libertad_aplanado <- rbind(libertad_humana,
                           libertad_personal,
                           libertad_economica)

libertad_aplanado$Tipo_Libertad <- c(rep("Humana",nrow(libertad_humana)),
                                     rep("Personal",nrow(libertad_personal)),
                                     rep("Economica",nrow(libertad_economica)))


libertad_aplanado$anio <- as.factor(libertad_aplanado$anio)

p<-ggplot(libertad_aplanado, 
          aes(x=INDICE, 
              fill=anio)) +
  geom_density(alpha=0.4)+
  theme_bw()+
  facet_wrap(~Tipo_Libertad,
             ncol = 5)

p <- ggplotly(p)

p

Algunos comentarios

metricas <- aggregate(libertad_aplanado$INDICE,
                      by=list(libertad_aplanado$anio,libertad_aplanado$Tipo_Libertad),
                      function(x) c(Min=min(x,na.rm=TRUE),
                                    Prom=mean(x,na.rm=TRUE),
                                    Med=median(x,na.rm=TRUE),
                                    Max=max(x,na.rm=TRUE),
                                    Coef_Variacion=sd(x,na.rm=TRUE)/mean(x,na.rm=TRUE)))

metricas <- data.frame(Anio=metricas$Group.1,
                       Tipo_Libertad=metricas$Group.2,
                       metricas$x)

metricas[,3:ncol(metricas)] <- round(metricas[,3:ncol(metricas)],2)

metricas <- dcast(setDT(metricas), Anio~Tipo_Libertad, value.var=c("Min", "Prom","Max"))

formattable(metricas,
            list(
              Min_Economica = color_tile("transparent", "LightPink"),
              Min_Humana = color_tile("transparent", "LightPink"),
              Min_Personal = color_tile("transparent", "LightPink"),
              Prom_Economica = color_tile("transparent", "LightSteelBlue"),
              Prom_Humana = color_tile("transparent", "LightSteelBlue"),
              Prom_Personal = color_tile("transparent", "LightSteelBlue"),
              Max_Economica = color_tile("transparent", "Khaki"),
              Max_Humana = color_tile("transparent", "Khaki"),
              Max_Personal = color_tile("transparent", "Khaki"))) -> a

as.htmlwidget(a, width = 11)

Evolución de los Índices por Región

p <- ggplot(libertad_aplanado, 
            aes(x=anio, 
                y=INDICE,
                fill=region)) + 
  geom_boxplot() +
  facet_wrap(~region+Tipo_Libertad,
             ncol = 3) +
  theme_bw()

p + theme(legend.position='none',
          axis.text=element_text(size=6))

¿Cómo se evolucionaron los Índices de Libertad en Argentina?

resumen <- aggregate(libertad_aplanado$INDICE,
                     by=list(libertad_aplanado$anio,
                             libertad_aplanado$Tipo_Libertad),
                     mean,na.rm=TRUE)

resumen <- data.frame(Anio=resumen$Group.1,
                      Tipo_Libertad=resumen$Group.2,
                      Promedio=resumen$x)

resumen$TIPO <- rep("Promedio",nrow(resumen))

Argentina <- subset(libertad_aplanado,libertad_aplanado$pais=="Argentina")

Argentina_Res <- resumen

Argentina_Res$Promedio <- Argentina$INDICE[match(paste(Argentina_Res$Anio,
                                                       Argentina_Res$Tipo_Libertad),
                                            paste(Argentina$anio,
                                                  Argentina$Tipo_Libertad))]
Argentina_Res$TIPO <- rep("Argentina",nrow(Argentina_Res))

resumen <- rbind(resumen,Argentina_Res)

resumen$Anio <- as.numeric(as.character(resumen$Anio))

p <- ggplot(resumen,
            aes(x = Anio,
                y = Promedio,
                color=TIPO)) + 
  theme_bw() +
  geom_line(size=1.2) +
  geom_point(size=1.5)+
  facet_wrap(~Tipo_Libertad,
           ncol = 3)


p + theme(legend.position='top',
          axis.text=element_text(size=8))

¿Qué regiones cuentan con mayores caídas en los índices de libertad?

TOP 10 de países con mayor caída en el índice de Libertad Humana (2016 vs 2008)
# Defino dos df, uno con info inicial a 2008, y otro con info final a 2016

caidas_base <- subset(libertad_aplanado,libertad_aplanado$anio==2008) 
caidas_fin <- subset(libertad_aplanado,libertad_aplanado$anio==2016) 

# Voy a trabajar sobre "caidas_fin", asi que me traigo el dato del indice base 

caidas_fin$INDICE_BASE <- caidas_base$INDICE[match(paste(caidas_fin$pais,
                                                         caidas_fin$Tipo_Libertad),
                                                   paste(caidas_base$pais,
                                                         caidas_base$Tipo_Libertad))]



# Agrego una columna de variaciones, como la diferencia entre el indice 2008 y el 2016 

caidas_fin$Variaciones <- caidas_fin$INDICE - caidas_fin$INDICE_BASE

# TOP CAIDAS EN INDICA LIBERTAD HUMANA

caidas_analisis <- subset(caidas_fin,
                          caidas_fin$Tipo_Libertad=="Humana")

# Ordeno de menor a mayor variacion porcentual

caidas_analisis <- caidas_analisis[order(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE),]

caidas_analisis <- head(caidas_analisis,10)

# Armo la tabla de detalle a presentar 

tablita_presentar <- data.frame(Pais=caidas_analisis$pais,
                                Region=caidas_analisis$region,
                                Ind_2008=caidas_analisis$INDICE_BASE,
                                Ind_2016=caidas_analisis$INDICE,
                                Caida=caidas_analisis$Variaciones,
                                Pct_Caida=paste(round(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE*100,0),"%"))

# Le doy formato a la tabla resumen 

region <- as.character(unique(tablita_presentar$Region))

STYLE_1 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightPink"))
STYLE_2 <- style(color = "black", font.weight = "bold","background-color" = csscolor("PaleTurquoise"))
STYLE_3 <- style(color = "black", font.weight = "bold","background-color" = csscolor("Gold "))
STYLE_4 <- style(color = "black", font.weight = "bold","background-color" = csscolor("Plum "))
STYLE_5 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightSteelBlue "))

formattable(tablita_presentar,
            list(Region = formatter("span", 
                                      style = x ~ ifelse(x == region[1],STYLE_1,
                                                         ifelse(x == region[2],STYLE_2,
                                                                ifelse(x==region[3],STYLE_3,
                                                                           ifelse(x==region[4],STYLE_4,
                                                                                  ifelse(x==region[5],STYLE_5,NA))))))))
Pais Region Ind_2008 Ind_2016 Caida Pct_Caida
Siria Oriente Medio y Norte de África 5.46 3.77 -1.69 -31 %
Venezuela Latinoamérica y el Caribe 5.26 4.20 -1.06 -20 %
Egipto Oriente Medio y Norte de África 6.00 4.81 -1.19 -20 %
Brasil Latinoamérica y el Caribe 7.01 6.21 -0.80 -11 %
Grecia Europa del Este 7.94 7.20 -0.74 -9 %
Tailandia Sur de Asia 7.27 6.62 -0.65 -9 %
Burundi África Subsahariana 5.65 5.17 -0.48 -8 %
Argentina Latinoamérica y el Caribe 7.04 6.47 -0.57 -8 %
Ucrania Europa del Este 6.80 6.28 -0.52 -8 %
Mauritania África Subsahariana 5.90 5.47 -0.43 -7 %
TOP 10 de países con mayor caída en el índice de Libertad Personal (2016 vs 2008)
# Defino dos df, uno con info inicial a 2008, y otro con info final a 2016

caidas_base <- subset(libertad_aplanado,libertad_aplanado$anio==2008) 
caidas_fin <- subset(libertad_aplanado,libertad_aplanado$anio==2016) 

# Voy a trabajar sobre "caidas_fin", asi que me traigo el dato del indice base 

caidas_fin$INDICE_BASE <- caidas_base$INDICE[match(paste(caidas_fin$pais,
                                                         caidas_fin$Tipo_Libertad),
                                                   paste(caidas_base$pais,
                                                         caidas_base$Tipo_Libertad))]



# Agrego una columna de variaciones, como la diferencia entre el indice 2008 y el 2016 

caidas_fin$Variaciones <- caidas_fin$INDICE - caidas_fin$INDICE_BASE

# TOP CAIDAS EN INDICA LIBERTAD PERSONAL

caidas_analisis <- subset(caidas_fin,
                          caidas_fin$Tipo_Libertad=="Personal")

# Ordeno de menor a mayor variacion porcentual

caidas_analisis <- caidas_analisis[order(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE),]

caidas_analisis <- head(caidas_analisis,10)

# Armo la tabla de detalle a presentar 

tablita_presentar <- data.frame(Pais=caidas_analisis$pais,
                                Region=caidas_analisis$region,
                                Ind_2008=caidas_analisis$INDICE_BASE,
                                Ind_2016=caidas_analisis$INDICE,
                                Caida=caidas_analisis$Variaciones,
                                Pct_Caida=paste(round(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE*100,0),"%"))

# Le doy formato a la tabla resumen 

region_v2 <- as.character(unique(tablita_presentar$Region))

region <- c(region,region_v2)

region <- unique(region)

STYLE_6 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightCoral "))
STYLE_7 <- style(color = "black", font.weight = "bold","background-color" = csscolor("DarkGray "))

formattable(tablita_presentar,
            list(Region = formatter("span", 
                                      style = x ~ ifelse(x == region[1],STYLE_1,
                                                         ifelse(x == region[2],STYLE_2,
                                                                ifelse(x==region[3],STYLE_3,
                                                                           ifelse(x==region[4],STYLE_4,
                                                                                  ifelse(x==region[5],STYLE_5,
                                                                                         ifelse(x==region[6],STYLE_6,
                                                                                                ifelse(x==region[7],STYLE_7,NA))))))))))
Pais Region Ind_2008 Ind_2016 Caida Pct_Caida
Siria Oriente Medio y Norte de África 5.30 2.51 -2.79 -53 %
Egipto Oriente Medio y Norte de África 5.58 3.89 -1.69 -30 %
Burundi África Subsahariana 6.28 4.41 -1.87 -30 %
Nigeria África Subsahariana 6.95 5.71 -1.24 -18 %
Tailandia Sur de Asia 7.75 6.40 -1.35 -17 %
Nigeria África Subsahariana 6.95 5.82 -1.13 -16 %
Ucrania Europa del Este 7.73 6.59 -1.14 -15 %
Mauritania África Subsahariana 5.81 4.99 -0.82 -14 %
Emiratos Árabes Unidos Oriente Medio y Norte de África 5.89 5.07 -0.82 -14 %
Azerbaiyán Cáucaso y Asia Central 6.59 5.68 -0.91 -14 %
TOP 10 de países con mayor caída en el índice de Libertad Economica (2016 vs 2008)
# Defino dos df, uno con info inicial a 2008, y otro con info final a 2016

caidas_base <- subset(libertad_aplanado,libertad_aplanado$anio==2008) 
caidas_fin <- subset(libertad_aplanado,libertad_aplanado$anio==2016) 

# Voy a trabajar sobre "caidas_fin", asi que me traigo el dato del indice base 

caidas_fin$INDICE_BASE <- caidas_base$INDICE[match(paste(caidas_fin$pais,
                                                         caidas_fin$Tipo_Libertad),
                                                   paste(caidas_base$pais,
                                                         caidas_base$Tipo_Libertad))]



# Agrego una columna de variaciones, como la diferencia entre el indice 2008 y el 2016 

caidas_fin$Variaciones <- caidas_fin$INDICE - caidas_fin$INDICE_BASE

# TOP CAIDAS EN INDICA LIBERTAD PERSONAL

caidas_analisis <- subset(caidas_fin,
                          caidas_fin$Tipo_Libertad=="Economica")

# Ordeno de menor a mayor variacion porcentual

caidas_analisis <- caidas_analisis[order(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE),]

caidas_analisis <- head(caidas_analisis,10)

# Armo la tabla de detalle a presentar 

tablita_presentar <- data.frame(Pais=caidas_analisis$pais,
                                Region=caidas_analisis$region,
                                Ind_2008=caidas_analisis$INDICE_BASE,
                                Ind_2016=caidas_analisis$INDICE,
                                Caida=caidas_analisis$Variaciones,
                                Pct_Caida=paste(round(caidas_analisis$Variaciones/caidas_analisis$INDICE_BASE*100,0),"%"))

# Le doy formato a la tabla resumen 

formattable(tablita_presentar,
            list(Region = formatter("span", 
                                      style = x ~ ifelse(x == region[1],STYLE_1,
                                                         ifelse(x == region[2],STYLE_2,
                                                                ifelse(x==region[3],STYLE_3,
                                                                           ifelse(x==region[4],STYLE_4,
                                                                                  ifelse(x==region[5],STYLE_5,
                                                                                         ifelse(x==region[6],STYLE_6,
                                                                                                ifelse(x==region[7],STYLE_7,NA))))))))))
Pais Region Ind_2008 Ind_2016 Caida Pct_Caida
Venezuela Latinoamérica y el Caribe 4.22 2.88 -1.34 -32 %
Argentina Latinoamérica y el Caribe 5.88 4.84 -1.04 -18 %
Egipto Oriente Medio y Norte de África 6.43 5.72 -0.71 -11 %
Siria Oriente Medio y Norte de África 5.62 5.02 -0.60 -11 %
Grecia Europa del Este 7.10 6.46 -0.64 -9 %
Brasil Latinoamérica y el Caribe 6.31 5.75 -0.56 -9 %
Papúa Nueva Guinea Oceanía 6.77 6.25 -0.52 -8 %
Zambia África Subsahariana 7.15 6.61 -0.54 -8 %
Fiji Oceanía 7.26 6.79 -0.47 -6 %
Namibia África Subsahariana 6.83 6.40 -0.43 -6 %

¿Qué países ocupan el TOP 3 de los mejores índices de libertad?

Evolución TOP 3 Índice de Libertad Humana
# Filtro el data set para quedarme solo con los ranking entre 1 y 3

TOP_3_LibertadHumana <- subset(libertad,libertad$libertad_humana_ranking %in% 1:3)

TOP_3_LibertadHumana$anio <- as.factor(TOP_3_LibertadHumana$anio)
TOP_3_LibertadHumana$libertad_humana_ranking <- as.factor(TOP_3_LibertadHumana$libertad_humana_ranking)

# Armo la tabla a mostrar

TABLA <- dcast(TOP_3_LibertadHumana[,c(1,3,6)],
               libertad_humana_ranking~anio,
               value.var="pais",
               fun.aggregate = function(x){paste(x,collapse = "-")},
               fill = "")

# Defino el formato de cada pais

paises <- as.character(unique(TOP_3_LibertadHumana$pais))

STYLE_1 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightPink"))
STYLE_2 <- style(color = "black", font.weight = "bold","background-color" = csscolor("PaleTurquoise"))
STYLE_3 <- style(color = "black", font.weight = "bold","background-color" = csscolor("Gold "))

# Le doy formato a la tabla

formattable(TABLA,
            list(`2008` = formatter("span", 
                               style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2009` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2010` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2011` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2012` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2013` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2014` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2015` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA)))),
                 `2016` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                  ifelse(x == paises[2],STYLE_2,
                                                         ifelse(x==paises[3],STYLE_3,NA))))))
libertad_humana_ranking 2008 2009 2010 2011 2012 2013 2014 2015 2016
1 Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Nueva Zelanda Nueva Zelanda Nueva Zelanda
2 Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Hong Kong Hong Kong Suiza
3 Suiza Suiza Suiza Suiza Suiza Suiza Suiza Suiza Hong Kong
Evolución TOP 3 Índice de Libertad Personal
# Filtro el data set para quedarme solo con los ranking entre 1 y 3
TOP_3_LibertadPersonal <- subset(libertad,libertad$libertad_personal_ranking %in% 1:3)

TOP_3_LibertadPersonal$anio <- as.factor(TOP_3_LibertadPersonal$anio)
TOP_3_LibertadPersonal$libertad_personal_ranking <- as.factor(TOP_3_LibertadPersonal$libertad_personal_ranking) 

# Armo la tabla a mostrar

TABLA <- dcast(TOP_3_LibertadPersonal[,c(1,3,8)],
               libertad_personal_ranking~anio,
               value.var="pais",
               fun.aggregate = function(x){paste(x,collapse = "-")},
               fill = "")

# Defino el formato de cada pais

paises_v2 <- as.character(unique(TOP_3_LibertadPersonal$pais))

paises <- unique(c(paises,paises_v2))

STYLE_4 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightSalmon "))
STYLE_5 <- style(color = "black", font.weight = "bold","background-color" = csscolor("Orchid "))
STYLE_6 <- style(color = "black", font.weight = "bold","background-color" = csscolor("PaleGreen "))
STYLE_7 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LavenderBlush "))
STYLE_8 <- style(color = "black", font.weight = "bold","background-color" = csscolor("Wheat"))
STYLE_9 <- style(color = "black", font.weight = "bold","background-color" = csscolor("LightGrey "))


# Le doy formato a la tabla

formattable(TABLA,
            list(`2008` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2009` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2010` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2011` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2012` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2013` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2014` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2015` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA)))))))))),
                 `2016` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,NA))))))))))))
libertad_personal_ranking 2008 2009 2010 2011 2012 2013 2014 2015 2016
1 Noruega Finlandia Noruega Finlandia Noruega Noruega Noruega Finlandia Países Bajos
2 Suecia Dinamarca Finlandia Dinamarca Dinamarca Dinamarca Finlandia Noruega Noruega
3 Finlandia Suecia Dinamarca Suecia Suecia Finlandia Dinamarca Austria Suecia
Evolución TOP 3 Índice de Libertad Economica
# Filtro el data set para quedarme solo con los ranking entre 1 y 3
TOP_3_LibertadEconomica <- subset(libertad,libertad$libertad_economica_ranking %in% 1:3)

TOP_3_LibertadEconomica$anio <- as.factor(TOP_3_LibertadEconomica$anio)
TOP_3_LibertadEconomica$libertad_economica_ranking <- as.factor(TOP_3_LibertadEconomica$libertad_economica_ranking) 

# Armo la tabla a mostrar

TABLA <- dcast(TOP_3_LibertadEconomica[,c(1,3,10)],
               libertad_economica_ranking~anio,
               value.var="pais",
               fun.aggregate = function(x){paste(x,collapse = "-")},
               fill = "")

# Defino el formato de cada pais

paises_v2 <- as.character(unique(TOP_3_LibertadEconomica$pais))

paises <- unique(c(paises,paises_v2))

STYLE_10 <- style(color = "black", font.weight = "bold","background-color" = csscolor("MediumPurple"))

# Le doy formato a la tabla

formattable(TABLA,
            list(`2008` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,
                                                       ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2009` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2010` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                ifelse(x == paises[2],STYLE_2,
                                                ifelse(x==paises[3],STYLE_3,
                                                ifelse(x==paises[4],STYLE_4,
                                                ifelse(x==paises[5],STYLE_5,
                                                ifelse(x==paises[6],STYLE_6,
                                                ifelse(x==paises[7],STYLE_7,
                                                ifelse(x==paises[8],STYLE_8,
                                                ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2011` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2012` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2013` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2014` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2015` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA))))))))))),
                 `2016` = formatter("span", 
                                    style = x ~ ifelse(x == paises[1],STYLE_1,
                                                       ifelse(x == paises[2],STYLE_2,
                                                              ifelse(x==paises[3],STYLE_3,
                                                                     ifelse(x==paises[4],STYLE_4,
                                                                            ifelse(x==paises[5],STYLE_5,
                                                                                   ifelse(x==paises[6],STYLE_6,
                                                                                          ifelse(x==paises[7],STYLE_7,
                                                                                                 ifelse(x==paises[8],STYLE_8,
                                                                                                        ifelse(x==paises[9],STYLE_9,ifelse(x==paises[10],STYLE_10,NA)))))))))))))
libertad_economica_ranking 2008 2009 2010 2011 2012 2013 2014 2015 2016
1 Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong Hong Kong
2 Singapur Singapur Singapur Singapur Singapur Singapur Singapur Singapur Singapur
3 Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda Nueva Zelanda