Menu
Coddy logo textTech

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    6

Aggiungi 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    6

Specifica 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] 6

rbind() 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 2
challenge icon

Sfida

Facile

Completa 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")
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore R online