Menu
Coddy logo textTech

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           30

Funzione 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             20

Combinare 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     2

Più 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     2
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Medio

Crea una funzione che elabori i dati di vendita usando le funzioni di dplyr. La funzione deve eseguire le seguenti operazioni:

  1. Raggruppare i dati per categoria di prodotto
  2. Calcolare le seguenti statistiche riassuntive per ciascun gruppo:
    • Vendite totali
    • Prezzo medio
    • Numero di articoli venduti
  3. Ordinare i risultati per vendite totali in ordine decrescente
  4. 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