Caricamento librerie

library(dplyr)
library(ggplot2)
library(knitr)

Parte 1: Dati

L’Istat fornisce dati sui senzatetto e senza fissa dimora in Italia nel 2021 da questi links:

Il censimento Istat rileva la parte di popolazione che risulta essere iscritta all’anagrafe presso un indirizzo di residenza fittizio (senza tetto) e coloro che, pur non avendo un luogo di dimora abituale, eleggono il proprio domicilio presso il Comune dove dimorano abitualmente (senza fissa dimora).

Caricamento dati:

DCSS_SENZA_TETTO_14012025054415023 <- read.csv("DCSS_SENZA_TETTO_14012025054415023.csv")

Parte 2: Esplorazione dati

df<-DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso=="totale",Classe.di.età=="totale", Cittadinanza=="totale" )

totale <- df$Value

print(paste("Numero totale di senzatetto e senza fissa dimora in Italia nel 2021 =",totale))
## [1] "Numero totale di senzatetto e senza fissa dimora in Italia nel 2021 = 96197"
DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio %in% c("Nord","Centro","Sud","Isole","Nord-est","Nord-ovest","Italia","Mezzogiorno" ), Sesso=="totale",Classe.di.età=="totale", Cittadinanza!="totale" ) %>%
 mutate(Territorio=reorder(Territorio,Value))  %>%
  ggplot(aes(Territorio,Value,fill=Cittadinanza))+
  geom_bar(stat="identity")+
  coord_flip()+
  ylab("Numero totale di persone") +
  xlab("Territorio") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per territorio e cittadinanza nel 2021")

DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso!="totale",Classe.di.età=="totale", Cittadinanza=="totale" ) %>%
 mutate(Sesso=reorder(Sesso,Value))  %>%
  ggplot(aes(Sesso,Value, fill = Sesso))+
  geom_bar(stat="identity")+
  geom_text(aes(label=Value), vjust=0, size=3 )+
  ylab("Numero totale di persone") +
  xlab("Sesso") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per sesso nel 2021")

df<-DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso!="totale",Classe.di.età=="totale", Cittadinanza=="totale" ) %>%
  select(Sesso,Value)

df$percentuale<- paste(round(df$Value*100/totale,2),"%")

kable(df)
Sesso Value percentuale
maschi 65401 67.99 %
femmine 30796 32.01 %
DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso=="totale",Classe.di.età!="totale", Cittadinanza=="totale" ) %>%
  mutate(Classe.di.età= factor(Classe.di.età,levels=c("fino a 17 anni","18-34 anni","35-54 anni","55 anni e più"))) %>%
  ggplot(aes(Classe.di.età,Value, fill = Classe.di.età))+
  geom_bar(stat="identity")+
  geom_text(aes(label=Value), vjust=0, size=3 )+
  ylab("Numero totale di persone") +
  xlab("Classi di età") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per classi di età nel 2021")

df<-DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso=="totale",Classe.di.età!="totale", Cittadinanza=="totale" ) %>%
  select(Classe.di.età,Value)

df$percentuale<- paste(round(df$Value*100/totale,2),"%")

kable(df)
Classe.di.età Value percentuale
18-34 anni 23449 24.38 %
fino a 17 anni 12804 13.31 %
55 anni e più 26304 27.34 %
35-54 anni 33640 34.97 %
DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio %in% c("Piemonte","Valle d'Aosta / Vallée d'Aoste","Liguria","Lombardia","Trentino Alto Adige / Südtirol","Provincia Autonoma Bolzano / Bozen","Veneto","Friuli-Venezia Giulia","Emilia-Romagna","Toscana","Umbria","Marche","Lazio","Campania","Puglia","Basilicata","Calabria","Sicilia","Sardegna" ), Sesso=="totale",Classe.di.età=="totale" ,Cittadinanza!="totale" ) %>%
 mutate(Territorio=reorder(Territorio,Value))  %>%
  ggplot(aes(Territorio,Value,fill=Cittadinanza))+
  geom_bar(stat="identity")+
  coord_flip()+
  ylab("Numero totale di persone") +
  xlab("Territorio") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per regione e cittadinanza nel 2021")

df<-DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio =="Italia" , Sesso=="totale",Classe.di.età=="totale", Cittadinanza!="totale" ) %>%
  select(Cittadinanza,Value)

df$percentuale<- paste(round(df$Value*100/totale,2),"%")

kable(df)
Cittadinanza Value percentuale
italiano-a 59873 62.24 %
straniero-a/apolide 36324 37.76 %
DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio %in% c("Piemonte","Valle d'Aosta / Vallée d'Aoste","Liguria","Lombardia","Trentino Alto Adige / Südtirol","Provincia Autonoma Bolzano / Bozen","Veneto","Friuli-Venezia Giulia","Emilia-Romagna","Toscana","Umbria","Marche","Lazio","Campania","Puglia","Basilicata","Calabria","Sicilia","Sardegna" ), Sesso=="totale",!Classe.di.età=="totale" ,Cittadinanza=="totale" ) %>%
 mutate(Territorio=reorder(Territorio,Value))  %>%
  ggplot(aes(Territorio,Value,fill=Classe.di.età))+
  geom_bar(stat="identity")+
  coord_flip()+
  ylab("Numero totale di persone") +
  xlab("Territorio") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per regione e classe di età nel 2021")

DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio %in% c("Piemonte","Valle d'Aosta / Vallée d'Aoste","Liguria","Lombardia","Trentino Alto Adige / Südtirol","Provincia Autonoma Bolzano / Bozen","Veneto","Friuli-Venezia Giulia","Emilia-Romagna","Toscana","Umbria","Marche","Lazio","Campania","Puglia","Basilicata","Calabria","Sicilia","Sardegna" ), Sesso!="totale",Classe.di.età=="totale" ,Cittadinanza=="totale" ) %>%
 mutate(Territorio=reorder(Territorio,Value))  %>%
  ggplot(aes(Territorio,Value,fill=Sesso))+
  geom_bar(stat="identity")+
  coord_flip()+
  scale_fill_manual(values=c("#9933FF",
                             "darkblue"
                             ))+
  ylab("Numero totale di persone") +
  xlab("Territorio") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per regione e sesso nel 2021")

DCSS_SENZA_TETTO_14012025054415023 %>%
  filter(Territorio %in% c( "Torino","Genova","Milano","Bolzano / Bozen","Trento","Venezia","Trieste","Bologna","Firenze","Perugia",
"Roma","Pescara","Campobasso","Napoli","Bari","Potenza","Reggio di Calabria","Palermo","Cagliari" ), Sesso=="totale",Classe.di.età=="totale" ,Cittadinanza!="totale" ) %>%
 mutate(Territorio=reorder(Territorio,Value))  %>%
  ggplot(aes(Territorio,Value,fill=Cittadinanza))+
  geom_bar(stat="identity")+
  coord_flip()+
  scale_y_continuous(breaks = seq(0,30000,2000))+
  scale_fill_manual(values=c("blue",
                             "red"
                             ))+
  ylab("Numero totale di persone") +
  xlab("Territorio") +
  ggtitle("Numero totale di senzatetto e senza fissa dimora", subtitle = "per capoluogo e cittadinanza nel 2021")