Matrizen erstellen
Teil des Abschnitts Logik und Ablaufsteuerung der R-Journey von Coddy. Lektion 17 von 64.
Eine Matrix ist ein Vektor, der in Zeilen und Spalten angeordnet ist, und jeder Wert hat denselben Typ. matrix(data, nrow = ...) füllt sie standardmäßig spaltenweise:
m <- matrix(1:6, nrow = 2)
print(m)Ausgabe:
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6Füge byrow = TRUE hinzu, um die Matrix zeilenweise zu füllen, passend zu Daten, die eine Zeile pro Zeile geschrieben wurden:
m <- matrix(1:6, nrow = 2, byrow = TRUE)
print(m)Ausgabe:
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 4 5 6Gib entweder nrow oder ncol an; R berechnet das jeweils andere aus der Länge der Daten.
dim(m) gibt die Anzahl der Zeilen und Spalten zurück, und nrow() sowie ncol() geben jeweils eine davon allein zurück. matrix(0, nrow = 2, ncol = 3) wiederholt einen einzelnen Wert, um die Matrix zu füllen:
m <- matrix(0, nrow = 2, ncol = 3)
print(dim(m))
print(nrow(m) * ncol(m))
print(length(m))Ausgabe:
[1] 2 3
[1] 6
[1] 6rbind() stapelt Vektoren als Zeilen und cbind() als Spalten, wodurch aus separaten Vektoren eine Matrix erstellt wird:
a <- c(1, 2, 3)
b <- c(4, 5, 6)
print(rbind(a, b))
print(dim(cbind(a, b)))Ausgabe:
[,1] [,2] [,3]
a 1 2 3
b 4 5 6
[1] 3 2Aufgabe
EinfachVervollständige make_grid(values, n_cols). Gib eine Matrix mit n_cols Spalten zurück, die values zeilenweise enthält. Die Anzahl der Werte ist immer ein Vielfaches von n_cols.
Der bereitgestellte Code liest die Werte aus einer durch Kommas getrennten Zeile und n_cols aus der nächsten Zeile. Er gibt jede Zeile der zurückgegebenen Matrix in einer eigenen Zeile aus und anschließend ihre Größe als rows x columns.
Probier es selbst
make_grid <- function(values, n_cols) {
# Schreibe deinen Code hier
matrix(values)
}
# Mitgelieferter Ein-/Ausgabecode: belasse ihn wie er ist
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")
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik und Ablaufsteuerung
1Strings im Detail
Teilstrings mit substr()Formatierung mit sprintf()Aufteilen und VerbindenStrings durchsuchenText ersetzenWiederholung – Benutzernamen-Generator4Matrizen
Matrizen erstellenMatrizen indizierenZusammenfassungen von Zeilen und SpaltenMatrizenarithmetikRückblick – Sitzplan10Fortgeschrittener Kontrollfluss
Die switch()-FunktionVektorisierter ifelse()repeat und breakRekursive FunktionenRückblick – Notenklassifizierung2Schlüssel-Wert-Suchen
Benannte Vektor-SuchenSchlüssel prüfenSchlüssel hinzufügen und entfernenNamen durchlaufenRückblick – Aktienübersicht5Projekt – Notenbuch
Schüler hinzufügenNoten eintragen3Mengen und Zählen
Eindeutige WerteMengenoperationenZugehörigkeitstestsZählen mit table()Rückblick – Gäste einer Veranstaltung6Funktionen als Werte
Anonyme FunktionenFunktionen übergebenFunktionen zurückgebenClosures mit ZustandRückblick – Rabattregeln9Datenrahmen
Datenrahmen erstellenSpalten und ZeilenZeilen filternHinzufügen und SortierenZusammenfassung – Verkaufsbericht12Projekt – Ausgaben-Tracker
Ausgaben erfassenGesamtausgabenÜbe selbstständig: Online-R-Compiler