Menu
Coddy logo textTech

Dal formato long al formato wide

Lezione 10 di 14 del corso Manipolazione dei dati in R di Coddy.

Convertire i dati dal formato lungo a quello largo è una competenza essenziale nella manipolazione dei dati, particolarmente utile per creare rappresentazioni più compatte dei dati. In questa lezione, ci concentreremo sull'uso della funzione pivot_wider() del pacchetto tidyr per trasformare i dati dal formato lungo a quello largo.

1. Comprendere i formati lungo e largo

Formato lungo: le variabili sono memorizzate in coppie chiave-valore, con una colonna per i nomi delle variabili e un'altra per i valori.
Formato largo: ogni variabile ha una propria colonna.

2. La funzione pivot_wider()

La funzione pivot_wider() di tidyr viene usata per trasformare i dati dal formato lungo a quello largo. Ecco la sua sintassi di base:

pivot_wider(data, names_from = "key", values_from = "value")

3. Esempio: usare pivot_wider()

Vediamo un esempio:


# Carica la libreria necessaria
library(tidyr)

# Crea un dataset di esempio in formato lungo
long_data <- data.frame(
  name = c("Alice", "Alice", "Alice", "Bob", "Bob", "Bob"),
  subject = c("math", "science", "history", "math", "science", "history"),
  score = c(85, 92, 78, 76, 88, 82)
)

# Converti in formato largo
wide_data <- pivot_wider(long_data, 
                         names_from = "subject",
                         values_from = "score")

print(wide_data)

4. Comprendere gli argomenti

  • names_from: specifica quale colonna contiene i nomi delle nuove colonne nel formato largo.
  • values_from: specifica quale colonna contiene i valori delle nuove colonne.

5. Gestire più colonne di valori

Puoi trasformare più colonne di valori contemporaneamente:


long_data_multi <- data.frame(
  name = c("Alice", "Alice", "Bob", "Bob"),
  year = c(2022, 2023, 2022, 2023),
  score = c(85, 90, 76, 82),
  rank = c(2, 1, 3, 2)
)

wide_data_multi <- pivot_wider(long_data_multi,
                               names_from = year,
                               values_from = c(score, rank))

print(wide_data_multi)

Imparando a usare la funzione pivot_wider(), potrai rimodellare in modo efficiente i tuoi dati dal formato lungo a quello largo, creando rappresentazioni più compatte per specifiche esigenze di analisi in R.

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

Facile

Crea una funzione che trasformi un set di dati in formato lungo con i voti degli studenti in formato largo usando la funzione pivot_wider() del pacchetto tidyr. La funzione deve eseguire le seguenti operazioni:

  1. Convertire la stringa di input in un data frame
  2. Usare pivot_wider() per trasformare i dati dal formato lungo al formato largo
  3. Ordinare il data frame risultante in base al nome dello studente (usa %>% arrange(student))
  4. Stampare il data frame in formato largo

Provalo tu

# Leggi l'input
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))

# Converti la stringa di input in un data frame
df <- read.csv(text = input_string, stringsAsFactors = FALSE)

# Carica la libreria necessaria
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(dplyr))

# TODO: Scrivi il codice qui sotto per trasformare il data frame
# Suggerimento: usa la funzione pivot_wider() per passare dal formato lungo al formato largo
# Non dimenticare di ordinare il data frame risultante per nome dello studente

# Stampa il risultato
# print(result)

Tutte le lezioni di Manipolazione dei dati in R

Esercitati da solo: Compilatore R online