Creare DataFrame
Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 42 di 64.
Un data frame è la tabella di R: ogni colonna è un vettore con il proprio tipo e tutte le colonne hanno la stessa lunghezza, con un valore per riga. data.frame() ne crea uno a partire da vettori con nome:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(people)Output:
name age city
1 ada 36 london
2 bo 22 paris
3 cy 41 romenrow() e ncol() restituiscono le dimensioni, mentre names() elenca le colonne. A differenza di una matrice, le colonne possono contenere tipi diversi: in questo caso testo e numeri.
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
print(nrow(people))
print(ncol(people))
print(names(people))Output:
[1] 3
[1] 3
[1] "name" "age" "city"str() mostra il tipo e i primi valori di ogni colonna: è un modo rapido per controllare cosa contiene un data frame:
people <- data.frame(
name = c("ada", "bo", "cy"),
age = c(36, 22, 41),
city = c("london", "paris", "rome")
)
str(people)Output:
'data.frame': 3 obs. of 3 variables:
$ name: chr "ada" "bo" "cy"
$ age : num 36 22 41
$ city: chr "london" "paris" "rome"I dati spesso arrivano come testo con una riga per linea. read.csv(text = lines) trasforma queste righe in un data frame, usando la prima riga come nomi delle colonne e convertendo automaticamente i numeri:
lines <- c("item,qty", "tea,2", "jam,5")
orders <- read.csv(text = lines)
print(orders)
print(sum(orders$qty))Output:
item qty
1 tea 2
2 jam 5
[1] 7Sfida
FacileCompleta table_info(names, ages). Crea un data frame con le colonne name e age a partire dai due vettori. Restituisci tre righe: Rows: con il numero di righe, Columns: con i nomi delle colonne uniti da , e Oldest: con il nome nella riga con l’età più alta (la prima in caso di parità).
Il codice fornito legge i nomi e le età in due righe separate da virgole e stampa ogni riga restituita.
Provalo tu
table_info <- function(names, ages) {
# Scrivi il tuo codice qui
character(0)
}
# Codice di input/output fornito: lascialo così com'è
input <- suppressWarnings(readLines(file("stdin")))
cat(table_info(strsplit(input[1], ",")[[1]], as.numeric(strsplit(input[2], ",")[[1]])), sep = "\n")
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online