Sissetuleku ebavõrdsus Eestis võrreldes Euroopa riikidega

show with app
#Eurostatist ebavõrdsusega seotud andmete tõmbamine
#library(eurostat)
#library(plotly)
library(shiny)
library(ggplot2)
library(plotly)
#library(plyr)
library(data.table)
#library(markdown)


#setwd("C:/Users/avork/Documents/SEN/ebavordsuseapp/EbavordsusEestis/")
ilc_di12 <- readRDS(file="data/ilc_di12")
ilc_di12b <- readRDS(file="data/ilc_di12b")
ilc_di12c <- readRDS(file="data/ilc_di12c")
ilc_pns4<- readRDS(file="data/ilc_pns4")
ilc_di11<- readRDS(file="data/ilc_di11")
ilc_di30a <- readRDS(file="data/ilc_di30a")
ilc_di30b <- readRDS(file="data/ilc_di30b")
ilc_di30c <- readRDS(file="data/ilc_di30c")
icw_sr_05 <- readRDS(file="data/icw_sr_05")
les25 <- readRDS(file="data/les25")

#TODO:! list
#eestikeelsed pealkirjad ja tähised detsiilide liikumise puhul - tehtud midagi
#detsiilide liikumine joonisele joonega ja võrrelda teiste riikidega jooni - tehtud midagi
#katsetada x- aasta keskmist joonisele ja võrrelda Eestist teistega - teha kui tahta konkreetseid riike


library(shiny)

dfles25 <- les25 %>%  filter(DIM1label.et == "Gini koefitsient") %>% 
  mutate(kategooria =ifelse(DIM3label.et %in% c("Eestlased", "Mitte-eestlased"), "Rahvuse järgi",
                            ifelse(DIM3label.et %in% c("Eesti kodakondsus", "Mõne muu riigi kodakondsus", "Kodakondsuseta"), "Kodakondsuse järgi", "Kokku")))


shinyServer(function(input, output) {

    ##################
    #Gini coefficients
    ##################  
  
  #andmebaasi valik
  ginidf <- reactive({
    req(input$ginitunnus)
    #input$ginitunnus = "eqdpi"
    if (input$ginitunnus=="eqdpi") {
      ginidf <- ilc_di12
    } 
    if (input$ginitunnus=="eqdpibeftr") {
      ginidf <- ilc_di12b
    } 
    if (input$ginitunnus=="eqdpibeftrpens") {
      ginidf <- ilc_di12c
    } 
    ginidf
  })
  
  mytitle <- reactive({
    req(input$ginitunnus)
    mytitle <- ifelse(input$ginitunnus =="eqdpi", "Kasutatav ekvaliseeritud tulu", 
                     ifelse(input$ginitunnus =="eqdpibeftr", "Kasutatav ekvaliseeritud tulu enne toetusi, \npensionid toetuste sees",
                            ifelse(input$ginitunnus == "eqdpibeftrpens", "Kasutatav ekvaliseeritud tulu enne toetusi, \npensionid toetustest väljas", "")))
    mytitle
  })
  
  output$ginijoonis1 <- renderPlot({
    #jätame välja keskmised, mida ei vaja
    ginidfjoonisele <- ginidf()  %>%  filter(time>=as.Date("2000-01-01")) %>% 
      filter(!(geo %in% c("EU15", "EA18", "EA19", "EU27", "EU25","EU", "NMS10")))
    #jätame välja need riigid, mille eraldi joonistama
    ginidfjooniselemuud <- ginidfjoonisele %>%  filter(!(geo %in% c("EE", "EU28"))) %>% 
                                                           as.data.frame()
    #Gini üle aja
    ggplot() +
      geom_line(data=ginidfjooniselemuud, aes(x=time, y = values, group=geo), size=0.3, color="grey") + 
      geom_line(data=ginidfjoonisele[ginidfjoonisele$geo=="EE",], aes(x=time, y=values, color="Eesti"), size=1.5) +
      geom_line(data=ginidfjoonisele[ginidfjoonisele$geo=="EU28",], aes(x=time, y=values, color="EU28"), size=1.5) +
      labs(x="", y="Gini indeks", caption="allikas: Eurostat, EU-SILC", color="", 
           title = mytitle()) +
      theme(text =element_text(size=14))
    
  })

  #
  output$giniexperimental <- renderPlot({
    
    icw_sr_05 <- icw_sr_05 %>% 
      mutate(stk_flowlbl =ifelse(stk_flow=="EXPN", "Expenditure",
                                 ifelse(stk_flow=="INC", "Income",
                                        ifelse(stk_flow=="SAV", "Savings", "Net wealth"))))
    
    ggplot(icw_sr_05, aes(x=geo, y = values, fill=geo)) +
      geom_col() +
      guides(fill=FALSE) +
      facet_wrap(~stk_flowlbl, scales = "free") +
      labs(x="", y="Gini", caption="allikas: Eurostat", 
           title = "Gini coefficient on household population - experimental statistics")
    #+
    #  guides(color=FALSE)
  })
  
  #####################################
  #Kvintiilide suhe
  #####################################
  output$s8020joonis1 <- renderPlot({
    
    s8020joonisele <- ilc_di11  %>%  
      filter(time>=as.Date("2000-01-01"),
             !(geo %in% c("EU15", "EA18", "EA19", "EU27", "EU25","EU", "NMS10")),
             age == input$vanus, sex == input$sugu) %>% as.data.frame()
      
    #jätame välja need riigid, mille eraldi joonistama
    s8020jooniselemuud <- s8020joonisele %>%  filter(!(geo %in% c("EE", "EU28"))) %>% 
      as.data.frame()
    
    ggplot() +
      geom_line(data=s8020jooniselemuud, aes(x=time, y = values, group=geo), size=0.3, color="grey") + 
      geom_line(data=s8020joonisele[s8020joonisele$geo=="EE",], aes(x=time, y=values, color="Eesti"), size=1.5) +
      geom_line(data=s8020joonisele[s8020joonisele$geo=="EU28",], aes(x=time, y=values, color="EU28"), size=1.5) +
      labs(x="", y="Kvintiilide suhte korda - S80/S20", caption="allikas: Eurostat, EU-SILC", color="", 
           title = "Viienda ja esimese sissetulekukvintiili sissetulekute suhe valitud soo ja vanuse järgi") +
      theme(text =element_text(size=14))
    
    })
    
  # ggplot(ilc_pns4, aes(x=time, y = values, color=geo)) +
  #   geom_line() + 
  #   guides(color=FALSE) +
  #   facet_wrap(~age) +
  #   geom_line(data=ilc_pns4[ilc_pns4$geo=="EE",], aes(x=time, y=values), size=1.5) +
  #   labs(x="", y="S80/S20", caption="allikas: Eurostat, EU-SILC", 
  #        title = "S80/S20 kvintiilide sissetulekute suhe")
  # 
  # })
  # 
  # # labs(x="", y="S80/S20", caption="allikas: Eurostat", 
  # #      title = "Inequality of income distribution S80/S20 income quintile share ratio - EU-SILC survey")
  # # 
  # 
  # output$s8020byagesex <- renderPlot({
  #   
  # ggplot(ilc_di11, aes(x=time, y = values, color=geo)) +
  #   geom_line() + 
  #   guides(color=FALSE) +
  #   facet_grid(age~sex) +
  #   geom_line(data=ilc_di11[ilc_di11$geo=="EE",], aes(x=time, y=values), size=1.5) +
  #   labs(x="", y="S80/S20", caption="allikas: Eurostat", 
  #        title = "S80/S20 income quintile share ratio by sex and selected age group - EU-SILC survey")
  # 
  # })

  #####################
  #Liikumine detsiilide vahel
  #####################
  #andmebaasi valik
  movedf <- reactive({
    req(input$periood)
    #input$ginitunnus = "eqdpi"
    if (input$periood=="year1") {
      movedf <- ilc_di30a %>%  rename(trans= trans1y)
    } 
    if (input$periood=="year2") {
      movedf <- ilc_di30b %>%  rename(trans= trans2y)
    } 
    if (input$periood=="year3") {
      movedf <- ilc_di30c %>%  rename(trans= trans3y)
    } 
    movedf
  })
  
  mytitlemove <- reactive({
    req(input$periood)
    mytitlemove <- ifelse(input$periood =="year1", "Detsiilidevaheline liikumine ühe aasta möödudes", 
                      ifelse(input$periood =="year2", "Detsiilidevaheline liikumine kahe aasta möödudes",
                             ifelse(input$periood == "year3", "Detsiilidevaheline liikumine kolme aasta möödudes", "")))
    mytitlemove
  })
  
  
  output$decilemovejoonis1 <- renderPlot({
    #jätame välja keskmised, mida ei vaja
    movedfjoonisele <- movedf()  %>%  filter(time>=as.Date("2000-01-01")) %>% 
      filter(!(geo %in% c("EU15", "EA18", "EA19", "EU27", "EU25","EU", "NMS10"))) %>% 
      filter(trans==input$liikumine)
    
    movedfjoonisele$deciles = factor(movedfjoonisele$quantile, 
                                      levels = c("TOTAL", "D1", "D2", "D3", "D4", "D5", "D6","D7", "D8", "D9", "D10"),
                                      labels = c("Kokku", "Detsiilist 1", "Detsiilist 2", "Detsiilist 3", "Detsiilist 4", 
                                                 "Detsiilist ", "Detsiilist 6","Detsiilist 7", "Detsiilist 8", 
                                                 "Detsiilist 9", "Detsiilist 10"), ordered = TRUE)
    
    #jätame välja need riigid, mille eraldi joonistama
    movedfjooniselemuud <- movedfjoonisele %>%  filter(!(geo %in% c("EE", "EU28"))) %>% 
      as.data.frame()
    #Gini üle aja
    ggplot() +
      geom_line(data=movedfjooniselemuud, aes(x=time, y = values, group=geo), size=0.3, color="grey") + 
      geom_line(data=movedfjoonisele[movedfjoonisele$geo=="EE",], aes(x=time, y=values, color="Eesti"), size=1) +
      geom_line(data=movedfjoonisele[movedfjoonisele$geo=="EU28",], aes(x=time, y=values, color="EU28"), size=1) +
      facet_wrap(~deciles) +
      labs(x="", y="Osakaal inimestest", caption="allikas: Eurostat, EU-SILC", color="", 
           title = mytitlemove()) +
      theme(text =element_text(size=14))
    
  })
  
  # 
  # output$decilemov1 <- renderPlot({
  #   
  # ggplot(ilc_di30a[ilc_di30a$geo=="EE",], aes(x=time, y = values, fill=trans1y)) +
  #   geom_col() + 
  #   #guides(color=FALSE) +
  #   facet_wrap(~quantile) +
  #   labs(x="", y="%", caption="allikas: Eurostat", 
  #        title = "Transitions of income within one year by decile")
  # })
  # 
  # output$decilemov2 <- renderPlot({
  #   
  #   ggplot(ilc_di30b[ilc_di30b$geo=="EE",], aes(x=time, y = values, fill=trans2y)) +
  #     geom_col() + 
  #     #guides(color=FALSE) +
  #     facet_wrap(~quantile) +
  #     labs(x="", y="%", caption="allikas: Eurostat", 
  #          title = "Transitions of income within two year by decile")
  # })
  # 
  # output$decilemov3 <- renderPlot({
  #   
  #   ggplot(ilc_di30c[ilc_di30c$geo=="EE",], aes(x=time, y = values, fill=trans3y)) +
  #     geom_col() + 
  #     #guides(color=FALSE) +
  #     facet_wrap(~quantile) +
  #     labs(x="", y="%", caption="allikas: Eurostat", 
  #          title = "Transitions of income within three year by decile")
  # })
  # 
  # 
  # output$decilemov1c <- renderPlot({
  #   
  #   ggplot(ilc_di30a[ilc_di30a$quantile==input$kvantiil,], aes(x=time, y = values, fill=trans1y)) +
  #     geom_col() + 
  #     #guides(color=FALSE) +
  #     facet_wrap(~geo) +
  #     labs(x="", y="%", caption="allikas: Eurostat", 
  #          title = "Transitions of income within one year by decile")
  # })
  # 

  output$rahvusjoonis1 <- renderPlot({
  
    dfles25 %>% filter(kategooria!="Kokku") %>%  ggplot(aes(x=as.numeric(obsTime), y=obsValue, group=DIM3label.et, color=DIM3label.et)) +
    geom_line() + labs(x="", y="Gini koefitsient", color="Rahvus/Kodakondsus", caption ="Allikas: Statistikaameti andmebaas, tabel LES25") +
    facet_wrap(~kategooria) +theme(text =element_text(size=14))
  
  })
  
      
})
library(shiny)
shinyUI(fluidPage(
  
titlePanel("Sissetuleku ebavõrdsus Eestis võrreldes Euroopa riikidega"),
  
  navbarPage("",
             
             tabPanel("Gini indeks",
                      sidebarLayout(
                        sidebarPanel(
                          selectInput(inputId ="ginitunnus", "Vali tunnus",
                                      c("Kasutatav tulu"="eqdpi",
                                        "Kasutatav tulu enne toetusi, pensionid toetuste sees" = "eqdpibeftr",
                                        "Kasutatav tulu enne toetusi, pensionid toetustest väljas"= "eqdpibeftrpens"
                                      )
                          ) #end selectInput
                          
                        ),  #end sidebarPanel  
                        
                        # Show a plot of the generated distribution
                        mainPanel(
                          plotOutput("ginijoonis1", width = 800, height = 500)
                          #br(),
                          #plotOutput("ginieqdpi", width = 800, height = 500),
                          #br(),
                          #plotOutput("ginieqdpibtr", width = 800, height = 500),
                          #br(),
                          #plotOutput("ginieqdpibtrexpens", width = 800, height = 500),
                          #br()
                          #end of mainPanel
                        )
                        #end of sidebarLayout
                      )
                      #end of Gini indeks tab
             ),
             
              tabPanel("Kvintiilide suhe",
                       # Sidebar with a slider input for number of bins 
                       sidebarLayout(
                         sidebarPanel(
                           selectInput(inputId ="vanus", "Vali vanus",
                                        choices= c("Kokku"="TOTAL",
                                          "65 ja vanemad" = "Y_GE65",
                                          "Alla 65"= "Y_LT65"), selected = "TOTAL"
                           ), #end selectinput,
                           selectInput(inputId ="sugu", "Vali sugu",
                                       choices= c("Kokku"="T",
                                         "Mehed" = "M",
                                         "Naised"= "F"
                                       ), selected = "TOTAL"
                           ) #end selectinput
                           
                         ),    #end sidebarPanel
                         
                         # Show a plot of the generated distribution
                         mainPanel(
                           plotOutput("s8020joonis1", width = 800, height = 500)
                           #plotOutput("s8020byage", width = 800, height = 500),
                           #br(),
                           #plotOutput("s8020byagesex", width = 800, height = 500),
                           #br()
                           # plotOutput("ginieqdpibtrexpens", width = 800, height = 500),
                           # br()
                          
                            # #end of mainPanel
                         ) 
                         #end of sidebarLayout
                       )
                       #end of Kvintiilide suhe tab
               ),
             
             tabPanel("Inimeste liikumine detsiilide vahel",
                      sidebarLayout(
                        sidebarPanel(
                          selectInput(inputId ="periood", "Vali ajaperiood",
                                      choices =  c("3 aasta jooksul" = "year3",
                                                   "2 aasta jooksul" = "year2",
                                                   "1 aasta jooksul" = "year1"),
                                      selected= "year3"
                          ),
                      # selectInput(inputId ="kvantiil", "Vali kvantiil",
                      #                choices =  unique(ilc_di30a$quantile), selected = "TOTAL"
                      # ) #end selectInput
                        selectInput(inputId ="liikumine", "Inimeste liikumine",
                                       choices =  c("1 detsiil üles" = "TO_1UP",
                                                    "enam kui 1 detsiil üles" = "TO_GT1UP",
                                                    "1 detsiil alla" = "TO_1DW",
                                                    "enam kui 1 detsiil alla" = "TO_GT1DW",
                                                    "Sama detsiil" = "NO_CHG"
                                               ),
                                  selected= "TO_1UP"
                        )
                      ),  #end sidebarPanel  
                        
                        # Show a plot of the generated distribution
                        mainPanel(
                          plotOutput("decilemovejoonis1", width = 800, height = 500) 
                          #plotOutput("decilemov1", width = 800, height = 500),
                          #plotOutput("decilemov2", width = 800, height = 500),
                          #plotOutput("decilemov3", width = 800, height = 500),
                          #plotOutput("decilemov1c", width = 800, height = 500)
                          #plotOutput("ssdentPlot", height = "600", width="1000")
                          #end of mainPanel
                        )
                        #end of sidebarLayout
                      )
                      
             ), #end of liikumine
            
             tabPanel("Eesti: ebavõrdsus rahvuste vahel",
                      plotOutput("rahvusjoonis1", width = 800, height = 500)
             )
                      
                      
  ) #end of navbarPage  

))  #end of shinyUI(fluidPage(