Vai al contenuto principale

Funzione R median(): trova il valore centrale

Scopri come trovare rapidamente il valore centrale dei tuoi dati con la funzione R median(). Consigli per gestire i valori mancanti e raggruppare i dati per categoria.
· 4 min leggi

Scopri con l'IA

Trovare la mediana è una parte fondamentale dell’analisi dei dati, soprattutto quando hai a che fare con distribuzioni asimmetriche o valori anomali.

In R, la funzione median() offre un modo semplice e integrato per calcolare una misura molto importante (non parametrica!) di tendenza centrale. Ti mostro come funziona:

Cosa fa R median()?

La funzione median() esamina i tuoi dati numerici e restituisce (una delle interpretazioni del) valore centrale.

median(numeric_vector)

Qui, numeric_vector indica un vettore numerico o un oggetto simile, come una colonna di un data frame.

Un semplice esempio con R median()

Vediamolo in azione. Supponi di avere un piccolo vettore di numeri:

sales_numbers <- c(3, 5, 8, 2, 7)

median(sales_numbers)

R ordina automaticamente i numeri (2, 3, 5, 7, 8), quindi restituisce 5. È il valore esattamente al centro.

Ma cosa succede se il tuo vettore ha un numero pari di elementi, come nel prossimo esempio?

quarterly_sales <- c(10, 4, 7, 2)

median(quarterly_sales)

Qui, R ordina in (2, 4, 7, 10) e poi fa la media dei due numeri centrali (4 e 7), ottenendo 5.5.

Se il tuo dataset contiene un numero dispari di valori, seleziona semplicemente quello al centro. Con un numero pari di valori, median() calcola la media dei due numeri centrali.

Quindi, dietro le quinte, median() si occupa dell’ordinamento per te, il che è molto comodo.

Gestire i valori NA con median()

Man mano che i dataset crescono, è comune imbattersi in valori mancanti. Questi possono mandare in tilt i calcoli se non stai attento. Per impostazione predefinita, median() restituirà NA se nel tuo vettore sono presenti valori mancanti. (Anche uno solo.) Vediamo come funziona:

monthly_sales <- c(6, 3, NA, 9)

median(monthly_sales)

Nota che il risultato è NA. Per evitare questo, aggiungi l’argomento na.rm = TRUE. Indica a R di rimuovere i valori mancanti prima di calcolare la mediana:

median(monthly_sales, na.rm = TRUE)

Questa volta otterrai 6 (la mediana dei valori rimanenti (3, 6 e 9)). Tieni d’occhio gli NA: possono insinuarsi nei tuoi dati e falsare l’analisi se li dimentichi.

Trovare la mediana per gruppo in R

Proviamo qualcosa di nuovo: confrontare le mediane tra gruppi diversi.

Una domanda comune: Cosa succede se vogliamo vedere il reddito mediano per regione? Proprio come con i vettori semplici, R lo rende facile, ma ora dobbiamo prima raggruppare i dati.

Un modo rapido in R base è con tapply():

income_values <- c(40000, 50000, 45000, 35000, 60000, 30000)
region_labels <- c("East", "West", "West", "East", "East", "West")

tapply(income_values, region_labels, median)

Questo calcola il reddito mediano per ciascuna regione.

Se preferisci lavorare con il pacchetto dplyr, puoi ottenere lo stesso risultato usando una sintassi comoda con le pipe:

library(dplyr)

income_data <- data.frame(income = income_values, region = region_labels)

income_data %>%
   group_by(region) %>%
   summarise(median_income = median(income))

Questo approccio produce una tabella di riepilogo ordinata, con il reddito mediano per ogni regione.

Riepiloghi per gruppo come questo sono particolarmente utili quando vuoi confrontare le tendenze centrali tra categorie nei tuoi dati.

Calcolare la mediana delle colonne di un data frame in R

A volte potresti voler ottenere la mediana di ogni colonna in un data frame in una sola volta, magari per una rapida scansione dei valori centrali del tuo dataset. Qui userò sapply().

test_scores <- data.frame(math = c(1, 2, 3), science = c(7, 8, 9))

sapply(test_scores, median)

Questo comando restituisce la mediana di ciascuna colonna, così puoi individuare tendenze o outlier a colpo d’occhio. Questa tecnica è particolarmente utile quando esplori nuovi dati e vuoi una panoramica veloce.

Cose a cui fare attenzione

Prima di concludere, evidenziamo alcune insidie comuni e buone pratiche per lavorare senza intoppi con median():

  • Verifica di passare a median() solo dati numerici. Se provi con un fattore o un vettore di caratteri, R genererà un errore.

  • Ricorda di usare na.rm = TRUE se sospetti la presenza di dati mancanti.

  • Non c’è bisogno di ordinare manualmente i dati. median() si occupa dell’ordinamento internamente, quindi passa semplicemente il tuo vettore così com’è.

Conclusione

La funzione median() è un ottimo modo per capire il vero centro dei tuoi dati, soprattutto quando il tuo dataset contiene outlier che possono distorcere la media. La funzione median() è anche abbastanza flessibile da gestire complessità come valori mancanti o riepiloghi per gruppo.

Per i prossimi passi, ho scritto anche un breve articolo sulla funzione R mean(), se vuoi dare un’occhiata. E ricorda di seguire il nostro corso Exploratory Data Analysis in R per costruire davvero tutte le competenze utili per il lavoro.

Josef Waples

Autore

Josef Waples

Sono uno scrittore e editor di data science, con contributi a articoli di ricerca su riviste scientifiche. Sono particolarmente interessato ad algebra lineare, statistica, R e affini. Inoltre, gioco anche parecchio a scacchi! 

Argomenti

Correlato