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