Arrays in R: So funktionieren Arrays in der beliebten Programmiersprache

Wie in nahezu jeder anderen Programmiersprache können Entwicklerinnen und Entwickler auch in der R-Programmierung Elemente desselben Datentyps in der Datenstruktur Array speichern und von nützlichen Funktionalitäten profitieren.

Wofür braucht man Arrays in R?

Arrays, im Deutschen häufig auch Felder genannt, sind wie Strings in R eine Standard-Datenstruktur, die vor allem dann hilfreich ist, wenn man Daten organisieren und darauf zugreifen möchte. Mittels Indizierung können Programmierende auf die im Array hinterlegten Daten auf effiziente Weise zugreifen.

Auch Operationen, die den gesamten Datensatz betreffen, können mit Arrays einfach und effizient durchgeführt werden. R-Arrays mit mehreren Dimensions ermöglichen zudem die Repräsentation von mehrdimensionalen Daten, beispielsweise zu Matrizen oder Tensoren.

Arrays in R erstellen: So geht’s

Programmierende können in R Arrays mit unterschiedlichen Dimensionen erstellen. Ob Sie also einen einfachen Vektor oder eine komplexe mehrdimensionale Struktur abbilden möchten: Mit einem R-Array ist all dies möglich. Häufig werden zweidimensionale Arrays genutzt, die Sie sich als eine Art Tabelle oder als Matrix vorstellen können.

Ein einfacher zweidimensionaler Array, der die Zahlen von 1 bis 6 beinhaltet, 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 beinhaltet. Der zweite Parameter stellt die Dimensionen des Arrays dar, in diesem Fall wird ein 2x3-Array erstellt.

Hinweis

Beachten Sie, dass innerhalb eines Arrays in R nur Elemente desselben Datentyps gespeichert werden können. Wenn Sie verschiedenartige Datentypen innerhalb einer Datenstruktur 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 existieren, in Arrays umwandeln. Hierzu rufen Sie die Funktion einfach mit dem Element auf, das Sie in einen Array casten möchten, und übergeben zusätzlich die gewünschten Dimensionen:

# 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

Indizierung: So greifen Sie auf Elemente des Arrays zu

Auf Elemente Ihres Arrays können Sie mithilfe von Indizierung zugreifen. Hierbei werden die Indizes des gewünschten Elements – wie in vielen anderen Programmiersprachen – in eckigen Klammern angegeben. Bei mehrdimensionalen 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 Programmiersprachen nutzen und mit R nicht gerade erst das Programmieren lernen, kommt Ihnen die Indizierung in R vielleicht etwas seltsam vor: Sie beginnt nicht, wie aus vielen anderen Sprachen gewohnt, bei 0, sondern startet wie das natürlichsprachliche Zählen bei 1.

Mit Arrays rechnen

Sie können mithilfe von Arrays verschiedene mathematische Funktionen auf den gesamten Datensatz anwenden. Beispielsweise lässt sich die Summe zweier Arrays bilden, was Sie sich wie eine Addition zweier Matrizen vorstellen können. Achten Sie hierbei darauf, dass die Arrays dieselben Dimensionen bzw. dieselbe Länge haben, die Sie mithilfe der R Array length-Funktion herausfinden können.

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

Neben den Grundrechenarten, die als R-Operatoren zur Verfügung stehen, sind auf Arrays in R auch verschiedene Funktionen definiert, die Ihnen bei diversen Berechnungen helfen. Beispielsweise können Sie den Durchschnitt aller Elemente eines Arrays mit dem R-Command mean() ausrechnen:

durchschnitt <- mean(array1)
R

Ein weiterer Vorteil ist, dass Sie diverse Funktionen mithilfe der R-Array-Funktion apply(array, MARGIN, FUN) auf eine Dimension Ihrer Wahl anwenden können. Die Funktion nimmt verschiedene Parameter entgegen:

  • array: Array, der betrachtet werden soll
  • MARGIN: Dimension, für die die Funktion angewendet werden soll, wobei 1 für die Zeilen und 2 für die Spalten steht
  • FUN: Vektorfunktion, die ein skalares Ergebnis zurückgibt

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 Programmcodes liefert drei Werte zurück, die jeweils den Durchschnittswert der Spalte angeben: 1.5 3.5 5.5.

Tipp

Sie arbeiten für Ihr Webprojekt mit R? Bei IONOS können Sie einen Webspace mieten, der Ihren individuellen Anforderungen gerecht wird.