Aggregazione con dplyr
Lezione 7 di 14 del corso Manipolazione dei dati in R di Coddy.
L'aggregazione dei dati è un passaggio cruciale nell'analisi dei dati, poiché consente di riassumere e ottenere informazioni dal tuo dataset. Il pacchetto dplyr in R fornisce potenti funzioni per l'aggregazione dei dati, in particolare group_by() e summarize(). Vediamo come usare queste funzioni in modo efficace.
Funzione group_by()
La funzione group_by() consente di raggruppare i dati in base a una o più variabili. Questo è in genere il primo passaggio nell'aggregazione dei dati.
# Data frame di esempio
df <- data.frame(
category = c("A", "B", "A", "B", "A"),
value = c(10, 15, 20, 25, 30)
)
# Raggruppa i dati per category
grouped_df <- group_by(df, category)
print(grouped_df)Risultato:
# Un tibble: 5 × 2
# Gruppi: category [2]
category value
<chr> <dbl>
1 A 10
2 B 15
3 A 20
4 B 25
5 A 30Funzione summarize()
Dopo aver raggruppato i dati, usa summarize() per calcolare le statistiche riepilogative di ogni gruppo.
# Calcola il valore medio per ogni categoria
result <- summarize(grouped_df, mean_value = mean(value))
print(result)Risultato:
# A tibble: 2 × 2
category mean_value
<chr> <dbl>
1 A 20
2 B 20Combinare group_by() e summarize()
Puoi concatenare queste funzioni usando l'operatore pipe %>% per rendere il codice più leggibile:
result <- df %>%
group_by(category) %>%
summarize(mean_value = mean(value),
sum_value = sum(value),
count = n())
print(result)Risultato:
# A tibble: 2 × 4
category mean_value sum_value count
<chr> <dbl> <dbl> <int>
1 A 20 60 3
2 B 20 40 2Più statistiche riepilogative
Puoi calcolare più statistiche in una singola chiamata a summarize():
result <- df %>%
group_by(category) %>%
summarize(
mean_value = mean(value),
min_value = min(value),
max_value = max(value),
count = n()
)
print(result)Risultato:
# A tibble: 2 × 5
category mean_value min_value max_value count
<chr> <dbl> <dbl> <dbl> <int>
1 A 20 10 30 3
2 B 20 15 25 2Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
MedioCrea una funzione che elabori i dati di vendita usando le funzioni di dplyr. La funzione deve eseguire le seguenti operazioni:
- Raggruppare i dati per categoria di prodotto
- Calcolare le seguenti statistiche riassuntive per ciascun gruppo:
- Vendite totali
- Prezzo medio
- Numero di articoli venduti
- Ordinare i risultati per vendite totali in ordine decrescente
- Restituire il data frame elaborato
Stampare il data frame risultante.
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
input_data <- suppressWarnings(readLines(con))
# Converti la stringa di input in un data frame
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(readr))
sales_data <- read.csv(paste(input_data, collapse = "\n"))
# TODO: Scrivi qui sotto il tuo codice per elaborare i dati di vendita
# Suggerimento: usa le funzioni di dplyr come group_by(), summarize(), arrange(), desc()
process_sales_data <- function(data) {
# Il tuo codice qui
# Restituisci il data frame elaborato
return(data)
}
# Elabora i dati di vendita
result <- process_sales_data(sales_data)
# Stampa il risultato
print(result)Tutte le lezioni di Manipolazione dei dati in R
Esercitati da solo: Compilatore R online