Creazione di matrici
Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 17 di 64.
Una matrice è un vettore disposto in righe e colonne, e ogni valore ha lo stesso tipo. matrix(data, nrow = ...) la riempie colonna per colonna per impostazione predefinita:
m <- matrix(1:6, nrow = 2)
print(m)Output:
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6Aggiungi byrow = TRUE per riempirla riga per riga, in modo che corrisponda ai dati scritti una riga per riga:
m <- matrix(1:6, nrow = 2, byrow = TRUE)
print(m)Output:
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6Specifica nrow oppure ncol; R calcola l'altro in base alla lunghezza dei dati.
dim(m) restituisce il numero di righe e colonne, mentre nrow() e ncol() restituiscono ciascuno un solo valore. matrix(0, nrow = 2, ncol = 3) ripete un singolo valore per riempire la matrice:
m <- matrix(0, nrow = 2, ncol = 3)
print(dim(m))
print(nrow(m) * ncol(m))
print(length(m))Output:
[1] 2 3
[1] 6
[1] 6rbind() impila i vettori come righe e cbind() come colonne, creando una matrice a partire da vettori separati:
a <- c(1, 2, 3)
b <- c(4, 5, 6)
print(rbind(a, b))
print(dim(cbind(a, b)))Output:
[,1] [,2] [,3]
a 1 2 3
b 4 5 6
[1] 3 2Sfida
FacileCompleta make_grid(values, n_cols). Restituisci una matrice con n_cols colonne che contiene values riga per riga. Il numero di valori è sempre un multiplo di n_cols.
Il codice fornito legge i valori da una riga separata da virgole e n_cols dalla riga successiva. Stampa ogni riga della matrice restituita su una riga a sé, quindi ne stampa le dimensioni come rows x columns.
Provalo tu
make_grid <- function(values, n_cols) {
# Escribe tu código aquí
matrix(values)
}
# Código de entrada/salida proporcionado: déjalo tal como está
input <- suppressWarnings(readLines(file("stdin")))
values <- as.numeric(strsplit(input[1], ",")[[1]])
m <- make_grid(values, as.numeric(input[2]))
for (i in seq_len(nrow(m))) cat(m[i, ], "\n")
cat(nrow(m), "x", ncol(m), "\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