analyses/rei/prepare_ceo_data.R

# Libraries
library(vilaweb)
library(tidyverse)
require(readr)

# Read in Apr 2019 CEO data
df <- haven::read_sav('../../data-raw/ceo/Microdades anonimitzades -919.sav') %>%
  mutate(LLOC_NAIX = as.character(LLOC_NAIX)) %>%
  mutate(LLOC_NAIX = ifelse(LLOC_NAIX == '1', 
                            'Catalunya',
                            ifelse(LLOC_NAIX == '2',
                                   'Altres comunitats autònomes',
                                   ifelse(LLOC_NAIX == '3', 'Unió Europea',
                                          ifelse(LLOC_NAIX == '4', 'Resta del món',
                                                 NA))))) %>%
  mutate(date = '2019-03-01') %>%
  dplyr::select(date,
                P34, #indepe
                P26J, # rei
                P26A, # tribunals
                P28, # partit
                contains('P26'),
                EDAT,
                EDAT_GR,
                P29,
                SEXE,
                LLOC_NAIX,
                P69)
df <- as_factor(df)

# Read in prior ceo data and conform it to new format
ceo <- vilaweb::ceo %>%
  mutate(franquisme = P102) %>%
  mutate(P34 = P31) %>% #indepe
  mutate(P26J = P21J) %>% #monarca
  mutate(P26A = P21A) %>% #tribunals
  mutate(P28 = P24R) %>% # partit
  mutate(EDAT_GR = GR_EDAT) %>% # grouped age
  mutate(P29 = P25) %>% # axis
  mutate(P69 = C704) %>% # llengua propia
  mutate(LLOC_NAIX = C100) %>% #lloc de naixmenet
  mutate(date = paste0(ANY, '-', MES, '-01')) %>%
  dplyr::select(date,
                franquisme,
                P34, #indepe
                P26J, # rei
                P26A, # tribunals
                P28, # partit
                P26B = P21B, # partits politics
                       P26C = P21C, # el seu ajuntament
                       P26D = P21D, # govern espanyol
                       P26E = P21E, # els sindicats
                       P26F = P21F, # govern de la generalitat
                       P26G = P21G, # congres dels diputats
                       P26H = P21H, # parlament de catalunya
                       P26I = P21I, # la UE
                       P26K = P21K, # l'exercit
                       P26L = P21L, # PN i GC
                       P26M = P21M, # mossos d'esquadra
                       P26N = P21N, # esglesia catolica
                       P26O = P21O, # l ONU
                       P26P = P21P, # la banca
                       P26Q = P21Q, # mitjans de comunicacio
                       P26R = P21R, # tribunal constitucional
                       P26S = P21S, # universitats
                       P26T = P21T, # parlament europeu
                EDAT,
                EDAT_GR,
                P29,
                SEXE,
                LLOC_NAIX,
                P69)

# Combine the two
df <- bind_rows(ceo, df)

make_number <- function(x){
  x <- as.character(x)
  x <- ifelse(x == 'Cap confiança', '0',
              ifelse(x == 'Molta confiança', '10', as.character(x)))
  x <- as.numeric(x)
}
the_columns <- names(df)[grepl('P26', names(df))]
for(j in 1:length(the_columns)){
  this_column <- the_columns[j]
  df[,this_column] <- make_number(unlist(df[,this_column]))
}



# df <- vilaweb::ceo
df <- df %>%
  mutate(axis = as.character(P29)) %>%
  mutate(axis = ifelse(axis == 'Extrema esquerra', '0',
                       ifelse(axis == 'Extrema dreta', '10',
                              axis))) %>%
  mutate(axis = as.numeric(axis)) %>%
  dplyr::rename(llengua = P69) %>%
  mutate(llengua = as_factor(llengua)) %>%
  # mutate(axis = ifelse(P29 %in% 98:99,
  #                      NA, P29)) %>%
  mutate(monarquia = P26J) %>%
  mutate(SEXE = as_factor(SEXE)) %>%
  mutate(axis_simple = ifelse(axis <= 2,
                              'Extrema esquerra',
                              ifelse(axis <= 4,
                                     'Esquerra',
                                     ifelse(axis == 5,
                                            'Centre',
                                            ifelse(axis <= 7,
                                                   'Dreta',
                                                   ifelse(axis<= 10, 'Extrema dreta', axis))))))
df$axis_simple <- factor(df$axis_simple,
                         levels = c('Extrema esquerra' , 'Esquerra', 'Centre', 'Dreta', 'Extrema dreta'))
#   mutate(axis_simple = ifelse(axis <=3, 
#                               'Esquerra',
#                               ifelse(axis <= 6,
#                                      'Centre',
#                                      'Dreta')))
# df$axis_simple <- factor(df$axis_simple,
#                          levels = c('Esquerra', 'Centre', 'Dreta'))


df$monarquia <- make_number(df$monarquia)
df$tribunals <- make_number(df$P26A)

llengua_dict <- tibble(
  llengua = c("Català (valencià / balear)",
              "Castellà",
              "Totes dues igual: català (valencià / balear) i castellà",
              "Aranès",
              "Altres llengües o altres combinacions",
              "No ho sap",
              "No contesta"),
  language = c('Català\n(o aranès)', 'Espanyol', 'Català i Espanyol', "Català\n(o aranès)", 'Altres', NA, NA))
llengua_dict$language <- factor(llengua_dict$language,
                                levels = c('Català\n(o aranès)',  'Català i Espanyol', 'Altres',  'Espanyol'))

df <- left_join(df, llengua_dict)
df <- df %>% dplyr::select(-llengua) %>%
  dplyr::rename(llengua = language)
df$llengua <- factor(df$llengua,
                     levels = c('Català\n(o aranès)',  'Català i Espanyol', 'Altres',  'Espanyol'))
# P34 is the indepenence question
# df$indy <- df$P34
indy_dict <- tibble(P34 = c('Sí', 'No', "No ho sap",
                            "No contesta"),
                    indy = c('Independentistes',
                             'Unionistes',
                             'NS/NC',
                             'NS/NC'))
df <- left_join(df, indy_dict)


# P38_R is party question
# party_dict <- tibble(P28 = c(1, 3, 4, 6, 10, 12, 20, 21, 22, 80, 93, 96, 98),
#                      partit = c('PPC','ERC', 'PSC', "C's", 'CUP', "Podemos", "PDeCAT", 'JxCat',
#                                 'CECP', rep('Altre/NS/NC', 4)))
# df <- left_join(df, party_dict)
df$P28 <- as.character(df$P28)
df$partit <-
  ifelse(df$P28 %in% c('Altres partits', 'Cap',
                       'ICV-EUiA', 'No contesta',
                       'No ho sap', 'PACMA'),
         NA,
         ifelse(df$P28 %in% c('Junts per Catalunya',
                              'Junts pel Sí',
                              'PDeCat', 'PDeCAT',
                              'CDC'),
                'PDeCat/Junts',
                ifelse(df$P28 %in% c('Catalunya en Comú Podem',
                                     'Catalunya sí que es pot',
                                     'Podemos'),
                       'Comuns',
                       df$P28)))

df$date <- as.Date(df$date)
df$date <- as.character(df$date)
df <- df %>%
  mutate(date = ifelse(date == '2014-03-01', '2014-04-01',
                       ifelse(date == '2014-10-01', '2014-11-01',
                              ifelse(date == '2015-03-01', '2015-02-01',
                                     ifelse(date == '2017-06-01',
                                            '2017-07-01',
                                            ifelse(date == '2018-06-01',
                                                   '2018-07-01',
                                                   ifelse(date == '2018-11-01', '2018-10-01', date)))))))
df$date <- as.Date(df$date)

numberfy <- function(x){
  gsub(',', '.', scales::comma(x), fixed = TRUE)
}

get_score <- function(var = 'P26M', person){
  z <- df
  z$var <- as.numeric(unlist(z[,var]))
  x <- z %>% filter(date >= '2019-01-01') %>% summarise(avg = mean(var, na.rm = T), 
                                                        zero = length(which(var == 0)) / length(which(!is.na(var))), 
                                                        neg = length(which(var <= 4)) / length(which(!is.na(var)))) %>% mutate(who = person)
  return(x)
}

out <- get_score('P26J', 'Rei') %>% bind_rows(
  get_score('P26A', 'Tribunals'),
  get_score('P26D', 'Govern espanyol'),
  get_score('P26F', 'Govern de la Generalitat'),
  get_score('P26M', "Mossos d'Esquadra"),
  get_score('P26R', 'Tribunal Constitucional'),
  get_score('P26L', 'Guardia Civil i Policia Nacional')
  
)


P26A, # tribunals
P28, # partit
P26B = P21B, # partits politics
P26C = P21C, # el seu ajuntament
P26D = P21D, # govern espanyol
P26E = P21E, # els sindicats
P26F = P21F, # govern de la generalitat
P26G = P21G, # congres dels diputats
P26H = P21H, # parlament de catalunya
P26I = P21I, # la UE
P26K = P21K, # l'exercit
P26L = P21L, # PN i GC
P26M = P21M, # mossos d'esquadra
P26N = P21N, # esglesia catolica
P26O = P21O, # l ONU
P26P = P21P, # la banca
P26Q = P21Q, # mitjans de comunicacio
P26R = P21R, # tribunal constitucional
P26S = P21S, # universitats
P26T = P21T,
joebrew/vilaweb documentation built on Sept. 11, 2020, 3:42 a.m.