Dal formato wide al formato long
Lezione 9 di 14 del corso Manipolazione dei dati in R di Coddy.
In questa lezione ci concentreremo sull'uso della funzione pivot_longer() del pacchetto tidyr per convertire i dati dal formato largo a quello lungo.
Comprendere i formati largo e lungo
Formato largo: ogni variabile ha una propria colonna.
Formato lungo: le variabili sono memorizzate in coppie chiave-valore, con una colonna per i nomi delle variabili e un'altra per i valori.
La funzione pivot_longer()
La funzione pivot_longer() di tidyr viene usata per trasformare i dati dal formato largo a quello lungo. Ecco la sua sintassi di base:
pivot_longer(data, cols, names_to = "key", values_to = "value")Esempio:
# Load required library
library(tidyr)
# Create a sample wide format dataset
wide_data <- data.frame(
name = c("Alice", "Bob", "Charlie"),
math = c(85, 76, 90),
science = c(92, 88, 75),
history = c(78, 82, 85)
)
# Convert to long format
long_data <- pivot_longer(wide_data,
cols = c(math, science, history),
names_to = "subject",
values_to = "score")
print(long_data)Output:
# Una tibble: 9 × 3
name subject score
<chr> <chr> <dbl>
1 Alice math 85
2 Alice science 92
3 Alice history 78
4 Bob math 76
5 Bob science 88
6 Bob history 82
7 Charlie math 90
8 Charlie science 75
9 Charlie history 85Invece di avere 4 colonne: name, math, science e history, abbiamo 3 colonne: name, subject, score
Comprendere gli argomenti
cols: specifica quali colonne trasformare nel formato lungo.names_to: indica il nome della nuova colonna che conterrà i nomi delle colonne del formato largo.values_to: indica il nome della nuova colonna che conterrà i valori.
Importanza nell'analisi dei dati
Spesso si preferiscono i dati in formato lungo perché sono:
- Più facili da manipolare e analizzare con strumenti come
dplyr - Più adatti alla modellazione statistica e alla visualizzazione
- Coerenti con i principi dei dati ordinati
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 insieme di dati in formato largo con i punteggi degli esami degli studenti in formato lungo usando la funzione pivot_longer() del pacchetto tidyr. La funzione deve eseguire le seguenti operazioni:
- Convertire la stringa di input in un frame di dati
- Usare
pivot_longer()per trasformare i dati dal formato largo al formato lungo - Rinominare le colonne risultanti in "subject" e "score"
- Ordinare i dati per nome dello studente e poi per materia
- Stampare il frame di dati risultante in formato lungo
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
input_string <- suppressWarnings(readLines(con))
# Converti la stringa di input in un data frame
data <- read.csv(text = input_string, stringsAsFactors = FALSE)
# Carica il pacchetto necessario
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(dplyr))
# TODO: Scrivi il codice qui sotto per trasformare i dati
# Usa pivot_longer() per passare dal formato largo al formato lungo
# Rinomina le colonne in "subject" e "score"
# Ordina i dati prima per nome dello studente e poi per materia
# Stampa il data frame risultante in formato lungo
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