##IMPOSTAZIONE DELLA DIRECTORY #cambiare il percorso in base a dove si trova il file contenente i dati setwd("C:/Users/giuli/Downloads/STATISTICA_PER_LA_RICERCA") ##IMPORTAZIONE DEI DATI #installare il pacchetto readxl, se non installato install.packages("readxl") #Caricamento della library readxl library(readxl) #Lettura del dataset df<-read_xlsx("Visite_pz_SCC.xlsx") ##ESPLORAZIONE DEL DATASET #Struttura generale: numero di righe e colonne, tipologia variabili str(df) head(df) #di default mostra le prime 6 righe del dataset #ANALISI DESCRITTIVA DELLE VARIABILI CONTINUE #Distribuzioni hist(df$ETA) hist(df$PAS) hist(df$PAD) hist(df$BNP) #Statistiche descrittive di base summary(df[c("ETA", "PAS", "PAD", "BNP")]) #calcoliamo anche la SD vars_num <- c("ETA", "PAS", "PAD", "BNP") sapply(df[vars_num], sd, na.rm = TRUE) #ANALISI DESCRITTIVA DELLE VARIABILI CATEGORICHE table(df$ANA_SESSO) #frequenze assolute prop.table(table(df$ANA_SESSO)) * 100 #frequenze percentuali #stesso codice, più variabili contemporaneamente: vars_cat <- c("ANA_SESSO", "CMP_PERICARDIO", "CPT_IPERTENSIVA", "CPT_ISCHEMIA", "DM_D", "EMBOLIA_POLMONARE", "FIBRILLAZIONE_ATRIALE", "IPERTENSIONE_ARTERIOSA") for (v in vars_cat) { cat("Variabile:", v, "\n\n") # mostro il nome della variabile prima delle frequenze # Frequenze freq <- table(df[[v]]) print(freq) # Percentuali print(round(prop.table(freq) * 100, 1)) } #ANALISI DESCRITTIVA DELLE VARIABILI CONTINUE PER GRUPPO: #Distribuzioni per gruppo: ## --- ETA --- par(mfrow = c(1, 2)) #due grafici affiancati hist(df$ETA[df$ANA_SESSO == "M"], main = "ETA - Maschi", xlab = "Età", col = "lightblue", border = "white", xlim = range(df$ETA, na.rm = TRUE)) hist(df$ETA[df$ANA_SESSO == "F"], main = "ETA - Femmine", xlab = "Età", col = "lightpink", border = "white", xlim = range(df$ETA, na.rm = TRUE)) par(mfrow = c(1, 1)) # reset layout ## --- PAS --- par(mfrow = c(1, 2)) hist(df$PAS[df$ANA_SESSO == "M"], main = "PAS - Maschi", xlab = "PAS", col = "lightblue", border = "white", xlim = range(df$PAS, na.rm = TRUE)) hist(df$PAS[df$ANA_SESSO == "F"], main = "PAS - Femmine", xlab = "PAS", col = "lightpink", border = "white", xlim = range(df$PAS, na.rm = TRUE)) par(mfrow = c(1, 1)) ## --- PAD --- par(mfrow = c(1, 2)) hist(df$PAD[df$ANA_SESSO == "M"], main = "PAD - Maschi", xlab = "PAD", col = "lightblue", border = "white", xlim = range(df$PAD, na.rm = TRUE)) hist(df$PAD[df$ANA_SESSO == "F"], main = "PAD - Femmine", xlab = "PAD", col = "lightpink", border = "white", xlim = range(df$PAD, na.rm = TRUE)) par(mfrow = c(1, 1)) ## --- BNP --- par(mfrow = c(1, 2)) hist(df$BNP[df$ANA_SESSO == "M"], main = "BNP - Maschi", xlab = "BNP", col = "lightblue", border = "white", xlim = range(df$BNP, na.rm = TRUE)) hist(df$BNP[df$ANA_SESSO == "F"], main = "BNP - Femmine", xlab = "BNP", col = "lightpink", border = "white", xlim = range(df$BNP, na.rm = TRUE)) par(mfrow = c(1, 1)) #Statistiche di base per sesso by(df[c("ETA", "PAS", "PAD", "BNP")], df$ANA_SESSO, summary) #SD per sesso vars_num <- c("ETA", "PAS", "PAD", "BNP") for (v in vars_num) { cat("Variabile:", v, "\n") print(tapply(df[[v]], df$ANA_SESSO, sd, na.rm = TRUE)) } #ANALISI DESCRITTIVA DELLE VARIABILI CATEGORICHE PER GRUPPO vars_cat <- c("CMP_PERICARDIO", "CPT_IPERTENSIVA", "CPT_ISCHEMIA", "DM_D", "EMBOLIA_POLMONARE", "FIBRILLAZIONE_ATRIALE", "IPERTENSIONE_ARTERIOSA") for (v in vars_cat) { cat("Variabile:", v, "\n\n") # Mostro il nome della variabile prima delle tabelle # Tabella di frequenze per sesso freq <- table(df$ANA_SESSO, df[[v]]) print(freq) # Percentuali per riga (cioè all’interno di ciascun sesso) cat("\nPercentuali per sesso (%):\n") print(round(prop.table(freq, margin = 1) * 100, 1)) }