Matrizen in R

Matrizen sind in R eine grundlegende Datenstruktur und kommen bei zahllosen Statistik-Beratungen und Nachhilfestunden zum Thema R vor. Für eine Einführung in Matrizen mit R beginnen wir zunächst damit, wie eine Matrix in R erstellt werden kann.

 

Erstellung von Matrizen

Wir verwenden hierzu die R-Funktion matrix(). Die Funktionsweise der Funktion matrix()  wird anhand eines Beispiels erläutert. Geben Sie hierzu in R den folgenden Befehl ein:

 

matrix(c(1,2,4,6,7,9),byrow=TRUE,nrow=3)

 

Die einzelnen Bestandteile des matrix()-Befehles haben die folgenden Bedeutungen:

  • Mit dem Argument c(1,2,4,6,7,9) fordern wir eine Matrix an, die aus den Zahlen 1,2,4,6,7,9 besteht.
  • Das Argument byrow=TRUE bewirkt, dass die Zahlen 1,2,4,6,7,9 zeilenweise in der erzeugten Matrix angeordnet werden. 
  • Das Argument nrow=3 bewirkt, dass die erzeugte Matrix 3 Zeilen hat.

Nach Eingabe des Befehls erhalten Sie im R-Output-Fenster das Ergebnis. Dieses sieht folgendermaßen aus:

 

 

Man erkennt nun die Funktionsweise des Arguments byrow=TRUE: Die Zahlenfolge 1,2,4,6,7,9 beginnt links oben in der Matrix und setzt sich zeilenweise nach rechts fort. 

Alternativ hätte man hier auch byrow=FALSE wählen können. Wir tun dies um den Unterschied zwischen byrow=TRUE und byrow=FALSE darzustellen und geben dazu den folgenden Befehl ein:

 

matrix(c(1,2,4,6,7,9),byrow=FALSE,nrow=3)

 

Man erhält dadurch den folgenden Output:

 

 

Man erkennt, dass bei Eingabe des Arguments byrow=FALSE die Zahlenfolge 1,2,4,6,7,9 auch oben links beginnt, aber im Unterschied zu vorher sich nun spaltenweise nach unten fortsetzt.

 

Matrix in R mit cbind() und rbind() erstellen

Eine alternative Methode zum Erstellen einer Matrix in R ist das zeilenweise oder spaltenweise erstellen mit den Befehlen cbind() oder rbind(). Mit cbind() lassen sich Vektoren spaltenweise zu einer Matrix zusammenfassen (Der Name cbind() bezieht sich auf column-bind).

Nehmen wir z.B. an, Sie möchten eine Matrix erstellen, die in der ersten Spalte die Zahlen 4 und 1, in der zweiten Spalte die Zahlen 1 und -8 und in der dritten Spalte die Zahlen 0 und 5 enthält. Um diese Matrix zu erzeugen, definieren Sie zunächst die Spaltenvektoren mit den eben genannten Zahlen:

 

x <- c(4,1)

y <- c(1,-8)

z <- c(0,5)

 

Wenn Sie den Operator c() noch nicht kennen, dann sehen Sie hier nach: Vektoren in R

Nun möchten wir diese Vektoren spaltenweise zu einer Matrix zusammenfügen. Geben Sie hierzu den folgenden Befehl ein:

 

cbind(x,y,z)

 

Dies resultiert in folgendem Output:

Sie erkennen, dass dies die oben beschriebene Matrix ist.

Analog ist es auch möglich, die Vektoren zeilenweise zu einer Matrix zusammen zu fassen. Hierzu steht in R der Befehl rbind() zur Verfügung. Wir geben den Befehl wieder in die R-Console ein:

 

rbind(x,y,z)

 

Und erhalten folgendes Ergebnis:

Diese Matrix enthält in jeder Zeile einen der zuvor definierten Vektoren x, y und z. 

 

War der Artikel hilfreich für Sie? Falls ja würden wir uns freuen, wenn Sie unsere Arbeit mit einer kleinen freiwilligen Zahlung unterstützen würden 😊. Nutzen Sie dazu den folgenden Link: paypal.me/smigierski

 

Benötigen Sie Hilfe bei der Erstellung von Matrizen in R oder Beratung zum Thema Rechnen mit Matrizen in R? Nehmen Sie Kontakt zu uns auf und Schildern uns Ihr Anliegen!

 

Hier geht es zurück zur R-Statistik-Tutorial-Übersicht. 

Zurück zur Startseite finden Sie hier: Beratung Datenanalyse.

 

Kommentar schreiben

Kommentare: 4
  • #1

    L. Schneider (Donnerstag, 13 Oktober 2016 21:32)

    Hallo Herr Smigierski,
    ich hätte eine Frage zu Matrizen in R: Können Sie mir sagen, wie man in R einzelne Zeilen aus einer Matrix auswählen kann?
    Danke und Gruss, L. Schneider

  • #2

    esra D. (Donnerstag, 08 August 2019 11:56)

    Hallo Herr Smigierski,
    können Sie behilflich sein beim Erstellen eines Vektors aus einer Liste mit Daten?
    Danke und VG

  • #3

    Christian (Freitag, 13 Dezember 2019 15:22)

    Vielen Dank für die Tipps

  • #4

    Marco (Sonntag, 20 Dezember 2020 17:09)

    Guten Tag Herr Smigierski,

    Vielleicht können Sie mir weiterhelfen. Ich möchte eine numerische Matrix in eine binäre oder Boolsche Matrix umwandeln. Bietet sich da der as.matrix befehl an oder müssen die Spalten der Matrix erst zerlegt werden und dann nach der Umwandlung wieder zusammengesetzt werden?

    Mit Dank und schöne Feiertage