Wie in nahezu jeder anderen Pro­gram­mier­spra­che können Ent­wick­le­rin­nen und Ent­wick­ler auch in der R-Pro­gram­mie­rung Elemente desselben Datentyps in der Da­ten­struk­tur Array speichern und von nütz­li­chen Funk­tio­na­li­tä­ten pro­fi­tie­ren.

Wofür braucht man Arrays in R?

Arrays, im Deutschen häufig auch Felder genannt, sind wie Strings in R eine Standard-Da­ten­struk­tur, die vor allem dann hilfreich ist, wenn man Daten or­ga­ni­sie­ren und darauf zugreifen möchte. Mittels In­di­zie­rung können Pro­gram­mie­ren­de auf die im Array hin­ter­leg­ten Daten auf ef­fi­zi­en­te Weise zugreifen.

Auch Ope­ra­tio­nen, die den gesamten Datensatz betreffen, können mit Arrays einfach und effizient durch­ge­führt werden. R-Arrays mit mehreren Di­men­si­ons er­mög­li­chen zudem die Re­prä­sen­ta­ti­on von mehr­di­men­sio­na­len Daten, bei­spiels­wei­se zu Matrizen oder Tensoren.

Arrays in R erstellen: So geht’s

Pro­gram­mie­ren­de können in R Arrays mit un­ter­schied­li­chen Di­men­sio­nen erstellen. Ob Sie also einen einfachen Vektor oder eine komplexe mehr­di­men­sio­na­le Struktur abbilden möchten: Mit einem R-Array ist all dies möglich. Häufig werden zwei­di­men­sio­na­le Arrays genutzt, die Sie sich als eine Art Tabelle oder als Matrix vor­stel­len können.

Ein einfacher zwei­di­men­sio­na­ler Array, der die Zahlen von 1 bis 6 be­inhal­tet, kann wie folgt mithilfe der Funktion array() erstellt werden:

beispielarray <- array(1:6, dim = c(2, 3))
R

Hierbei übergeben Sie der Funktion array() zwei Parameter: Zunächst geben Sie mit 1:6 die Range der Werte an, die Ihr R-Array be­inhal­tet. Der zweite Parameter stellt die Di­men­sio­nen des Arrays dar, in diesem Fall wird ein 2x3-Array erstellt.

Hinweis

Beachten Sie, dass innerhalb eines Arrays in R nur Elemente desselben Datentyps ge­spei­chert werden können. Wenn Sie ver­schie­den­ar­ti­ge Da­ten­ty­pen innerhalb einer Da­ten­struk­tur speichern möchten, lohnt sich ein Blick auf den R-Datentyp list.

Mit array() können Sie nicht nur neue Arrays erstellen, sondern auch Vektoren oder Matrizen, die bereits in Ihrem Code exis­tie­ren, in Arrays umwandeln. Hierzu rufen Sie die Funktion einfach mit dem Element auf, das Sie in einen Array casten möchten, und übergeben zu­sätz­lich die ge­wünsch­ten Di­men­sio­nen:

# Umwandeln von Vektoren in Arrays
vector <- 1:9
vector_als_array <- array(vector, dim = c(3,3))
# Umwandeln von Matrizen in Arrays
matrix <- matrix(1:9, nrow = 3, ncol = 3)
matrix_als_array <- array(matrix, dim = dim(matrix))
R

In­di­zie­rung: So greifen Sie auf Elemente des Arrays zu

Auf Elemente Ihres Arrays können Sie mithilfe von In­di­zie­rung zugreifen. Hierbei werden die Indizes des ge­wünsch­ten Elements – wie in vielen anderen Pro­gram­mier­spra­chen – in eckigen Klammern angegeben. Bei mehr­di­men­sio­na­len Arrays können Sie sich neben einzelnen Elementen auch ganze Reihen oder Spalten ausgeben lassen:

beispielarray <- array(1:6, dim = c(2, 3))
# Zugriff auf Element in der ersten Zeile und zweiten Spalte
element <- beispielarray[1, 2]
# Zugriff auf erste Zeile
zeile <- beispielarray[, 1]
# Zugriff auf erste Spalte
spalte <- beispielarray[1, ]
R
Hinweis

Wenn Sie bereits andere Pro­gram­mier­spra­chen nutzen und mit R nicht gerade erst das Pro­gram­mie­ren lernen, kommt Ihnen die In­di­zie­rung in R viel­leicht etwas seltsam vor: Sie beginnt nicht, wie aus vielen anderen Sprachen gewohnt, bei 0, sondern startet wie das na­tür­lich­sprach­li­che Zählen bei 1.

Mit Arrays rechnen

Sie können mithilfe von Arrays ver­schie­de­ne ma­the­ma­ti­sche Funk­tio­nen auf den gesamten Datensatz anwenden. Bei­spiels­wei­se lässt sich die Summe zweier Arrays bilden, was Sie sich wie eine Addition zweier Matrizen vor­stel­len können. Achten Sie hierbei darauf, dass die Arrays dieselben Di­men­sio­nen bzw. dieselbe Länge haben, die Sie mithilfe der R Array length-Funktion her­aus­fin­den können.

array1 <- array(1:4, dim = c(2,2))
array2 <- array(5:8, dim = c(2,2))
ergebnis <- array1 + array2
R

Neben den Grund­re­chen­ar­ten, die als R-Ope­ra­to­ren zur Verfügung stehen, sind auf Arrays in R auch ver­schie­de­ne Funk­tio­nen definiert, die Ihnen bei diversen Be­rech­nun­gen helfen. Bei­spiels­wei­se können Sie den Durch­schnitt aller Elemente eines Arrays mit dem R-Command mean() aus­rech­nen:

durchschnitt <- mean(array1)
R

Ein weiterer Vorteil ist, dass Sie diverse Funk­tio­nen mithilfe der R-Array-Funktion apply(array, MARGIN, FUN) auf eine Dimension Ihrer Wahl anwenden können. Die Funktion nimmt ver­schie­de­ne Parameter entgegen:

  • array: Array, der be­trach­tet werden soll
  • MARGIN: Dimension, für die die Funktion an­ge­wen­det werden soll, wobei 1 für die Zeilen und 2 für die Spalten steht
  • FUN: Vek­tor­funk­ti­on, die ein skalares Ergebnis zu­rück­gibt

Ein Beispiel für die Nutzung von apply() könnte wie folgt aussehen:

# Array erstellen
testarray <- array(1:6, dim = c(2,3))
# Anwendung von apply()
durchschnitt_spalten <- apply(array, MARGIN = 2, FUN = mean)
# Ausgabe der Ergebnisse
print(durchschnitt_spalten)
R

Die Ausgabe des obigen Pro­gramm­codes liefert drei Werte zurück, die jeweils den Durch­schnitts­wert der Spalte angeben: 1.5 3.5 5.5.

Tipp

Sie arbeiten für Ihr Web­pro­jekt mit R? Bei IONOS können Sie einen Webspace mieten, der Ihren in­di­vi­du­el­len An­for­de­run­gen gerecht wird.

Zum Hauptmenü