Quiz 1

**Caricare il dataset *ess_2008.sav**

if(!require(haven)){
  install.packages("haven")
}
## Loading required package: haven
if(!require(labelled)){
  install.packages("labelled")
}
## Loading required package: labelled
if(!require(essurvey)){
  install.packages("essurvey")
}
## Loading required package: essurvey
if(!require(tidyverse)){
  install.packages("tidyverse")
}
## Loading required package: tidyverse
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.0     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.1     ✔ tibble    3.2.0
## ✔ lubridate 1.9.2     ✔ tidyr     1.3.0
## ✔ purrr     1.0.1     
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag()    masks stats::lag()
## ℹ Use the ]8;;http://conflicted.r-lib.org/conflicted package]8;; to force all conflicts to become errors
library(haven)
library(labelled)
library(essurvey)
library("tidyverse")

ess <- read_sav("ess_2008.sav")
ess <- unlabelled(ess)
view(ess)

Rappresentare graficamente la distribuzione della variabile area_new (suggerimento: dato che per questo dataframe sono conservati alcuni metadati, per verificare di che variabile si tratta usare la funzione attr(ess$area_new, “label”) e, se si tratta di una variabile categoriale, verificare quali solo i levels. Questo suggerimento vale anche per le altre variabili a seguire)

if(!require(ggplot2)){
  install.packages("ggplot2")
}

library(ggplot2)

attr(ess$area_new,"label")
## [1] "Area geografica"
ifelse(is.factor(ess$area_new),"Variabile Categoriale","Variabile Non Categoriale")
## [1] "Variabile Categoriale"
levels(ess$area_new)
## [1] "Europa settentrionale" "Europa centrale"       "Europa orientale"     
## [4] "Europa meridionale"
ggplot(mapping=aes(x=ess$area_new))+geom_bar()

Calcolare anche le frequenze percentuali per la variabile area_new e farne una rappresentazione grafica (suggerimento: in questo caso conviene utilizzare geom_col)

ess %>%
group_by(area_new) %>%
summarize(count=n()) %>%
mutate(percentuale=count/sum(count)*100) %>%
ggplot(mapping=aes(x=area_new,y=percentuale))+geom_col()

Rappresentare graficamente la distribuzione della variabile cntry (suggerimento: provare ad aggiungere + theme(axis.text.x = element_text(angle = 60, hjust=1)), cosa è cambiato?)

attr(ess$cntry,"label")
## [1] "Paese"
ifelse(is.factor(ess$cntry),"Variabile Categoriale","Variabile non Categoriale")
## [1] "Variabile Categoriale"
levels(ess$cntry)
##  [1] "Ukraine"        "United Kingdom" "Belgium"        "Germany"       
##  [5] "Estonia"        "Ireland"        "Sweden"         "Switzerland"   
##  [9] "Finland"        "Slovenia"       "Denmark"        "Slovakia"      
## [13] "Netherlands"    "Poland"         "Norway"         "France"        
## [17] "Greece"         "Spain"          "Iceland"        "Austria"       
## [21] "Portugal"       "Hungary"        "Luxembourg"     "Czech Republic"
# Tramite l'aggiunta theme abbiamo delle aggiunte estetiche al nostro grafico. In particolare con theme abbiamo
# voluto migliorare esteticamente l'asse delle x aggiungendo un angolatura di 60 gradi e un allineamento orizziontale
# poichè c'erano diverse categorie in gioco e quindi la scritta sarebbe risultata molto lunga e sarebbe fuoriuscita
# dal grafico se non aggiustata manualmente.
ggplot(mapping=aes(x=ess$cntry))+geom_bar()+theme(axis.text.x=element_text(angle=60,hjust=1))

Per i soli tedeschi, fare un grafico a torta delle frequenze assolute della variabile gndr

attr(ess$gndr,"label")
## [1] "Genere"
ifelse(is.factor(ess$gndr),"Variabile Categorica","Variabile non Categorica")
## [1] "Variabile Categorica"
levels(ess$gndr)
## [1] "Maschio"   "Femmina"   "No answer"
ess %>%
group_by(gndr) %>%
filter(cntry=="Germany") %>%
summarize(count=n())
## # A tibble: 2 × 2
##   gndr    count
##   <fct>   <int>
## 1 Maschio  1381
## 2 Femmina  1489
BarreSovrapposte <- ess %>%
filter(cntry=="Germany") %>%
ggplot(mapping=aes(x=factor(1),fill=gndr))+geom_bar(width=0.4)+labs(x=NULL)

BarreSovrapposte

Torta <- BarreSovrapposte + coord_polar("y")+theme_void()

Torta