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.
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.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileCrea 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:
- Convertire la stringa di input in un data frame
- Usare
pivot_wider()per trasformare i dati dal formato lungo al formato largo - Ordinare il data frame risultante in base al nome dello studente (usa
%>% arrange(student)) - 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
3Rimodellare i dati
Dal formato wide al formato longDal formato long al formato wideGestire i dati mancantiEsercitati da solo: Compilatore R online