Die Da­ten­struk­tur einer Liste findet sich in vielen ver­schie­de­nen Pro­gram­mier­spra­chen. In R sind Listen vor allem dann praktisch, wenn Sie Daten zu­sam­men­fas­sen möchten, die un­ter­schied­li­chen R-Da­ten­ty­pen angehören.

Wofür werden R-Lists genutzt?

Listen sind eine viel­sei­tig ein­setz­ba­re Da­ten­struk­tur, die in R außerdem ein eigener Datentyp ist. Ins­be­son­de­re in dy­na­mi­schen Pro­gram­mier­um­ge­bun­gen, also dann, wenn flexibel Elemente ver­schie­dens­ter Da­ten­ty­pen hin­zu­ge­fügt und entfernt werden sollen, sind Listen bestens geeignet. Im Gegensatz zu R-Vektoren ist es bei Lis­ten­ele­men­ten nicht wichtig, welchen Datentyp sie haben: Die Mög­lich­keit, Da­ten­ty­pen innerhalb einer Liste zu mischen, ist einer der Kern­vor­tei­le von R-Lists. Da Sie Listen beliebig in­ein­an­der schach­teln können, ist es mithilfe von R-Lists möglich, komplexe Sach­ver­hal­te im Quellcode dar­zu­stel­len.

Tipp

Wenn Sie Ihre R-Programme online be­reit­stel­len möchten, kann Ihnen dabei der Webspace von IONOS helfen. Sie pro­fi­tie­ren hierbei von min­des­tens 50 GB Speicher für Ihre Projekte.

Create List in R: So erstellen Sie R-Lists

list()-Funktion

Um eine einfache R-List zu erstellen, können Sie die gleich­na­mi­ge Funktion list() benutzen, der Sie die Elemente übergeben, die Ihrer Liste hin­zu­ge­fügt werden sollen.

liste <- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))
R

In diesem Code­bei­spiel wurde eine Liste mit vier Werten erstellt. Wie Sie sehen können, haben diese Werte keinen iden­ti­schen Datentyp und können trotzdem innerhalb einer Liste zu­sam­men­ge­fasst werden.

Sie haben in R außerdem die Mög­lich­keit, eine Liste mit benannten Elementen zu erstellen. Dies er­mög­licht einen einfachen Zugriff auf bestimmte Elemente aus Ihrer R-List.

person <-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))
R

Sie können Listen auch weitere Listen als Elemente übergeben und auf diese Weise bei­spiels­wei­se ver­schie­de­ne Listen zu einem Datensatz zu­sam­men­fas­sen:

personen <- list(list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino")), list(name = "Mia Musterfrau", alter = 32, hobbys = c("Theater, Computerspiele")), list(name = "Mika Mustermensch", alter =23, hobbys = c("Sport, Musik")))
R

Listen aus Vektoren erstellen

Sie können Listen auch aus R-Vektoren erstellen, indem Sie diese in eine Liste umwandeln. Auch hierfür stellt R eine Funktion bereit.

vektor &lt;- c(1,2,3,4)
liste &lt;- as.list(vektor)
R

Listen in andere Da­ten­struk­tu­ren umwandeln

Obwohl R-Lists eine viel­sei­tig ein­setz­ba­re Da­ten­struk­tur sind, kann es sein, dass Sie für gewisse An­wen­dungs­zwe­cke andere Da­ten­struk­tu­ren wie zum Beispiel Vektoren oder Da­ta­frames benötigen. Ist dies der Fall, wandeln Sie Ihre Liste einfach um.

R-List to Vektor: So erstellen Sie Vektoren aus Listen

Wenn Sie Ihre Liste in einen R-Vektor umwandeln möchten, verwenden Sie die Funktion unlist(). Diese nimmt als Über­ga­be­pa­ra­me­ter eine R-List und wandelt diese in einen Vektor um. Die Liste, die Sie der Funktion übergeben, kann auch mehr­di­men­sio­nal sein. Oft ist ein Aufruf von unlist() hilfreich, wenn Sie komplexe Hier­ar­chien in einer einfachen Vek­tor­form dar­stel­len möchten.

liste &lt;- list(1, 2, 3, 4)
vektor &lt;- unlist(liste)
R

Wenn Sie eine Liste, die Daten ver­schie­de­ner Da­ten­ty­pen enthält, in einen Vektor umwandeln, kann es zu un­er­wünsch­tem und un­de­fi­nier­tem Verhalten kommen, da Vektoren in R stan­dard­mä­ßig nur Daten desselben Datentyps speichern können. Ein Aufruf von unlist() ist also nur dann zu empfehlen, wenn die Elemente Ihrer Liste denselben Datentyp haben.

In folgendem Code­bei­spiel werden alle Werte aus der Liste für die Spei­che­rung im R-Vektor in den Datentyp character um­ge­wan­delt.

liste &lt;- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))
vektor &lt;- unlist(liste)
R

R-List to Dataframe: Listen in Da­ta­frames umwandeln

R-Da­ta­frames werden unter anderem für die ta­bel­la­ri­sche Dar­stel­lung von Da­ten­sät­zen verwendet. Gerade mehr­di­men­sio­na­le Listen können daher sinnvoll in R-Da­ta­frames um­ge­wan­delt werden. Hierbei ist zu beachten, dass die Listen dieselbe Anzahl an Elementen haben müssen. Für die Um­wand­lung einer R-List in einen Dataframe stellt R die Funktion data.frame() bereit, die als Über­ga­be­pa­ra­me­ter die Liste erwartet, die um­ge­wan­delt werden soll.

personen &lt;- list(name=c("Max", "Mia", "Mika"), alter=c(27, 32, 23))
tabelle &lt;- data.frame(personen)
print(tabelle)
R

Der Dataframe, der durch den obigen Code erstellt wird, sieht wie folgt aus:

name alter
1  Max    27
2  Mia    32
3  Mika    23
R

Ele­ment­zu­griff in R-Lists

Um auf Elemente in Ihrer Liste zu­zu­grei­fen, könnten Sie entweder den Index, oder – wenn vorhanden – den Namen des ge­wünsch­ten Elements nutzen.

Zugriff via Index

Für den Zugriff auf die Lis­ten­ele­men­te benötigen Sie den R-Operator [[]], in den Sie den Index oder Namen einfügen.

liste &lt;- list(1, TRUE, "Hallo Welt!", c(1,2,3,4))
print(liste[[2]])
R

Dieser Code liefert Ihnen TRUE, also das zweite Element aus der Liste, zurück. Beachten Sie, dass die In­di­zie­rung in R bei eins beginnt. Wenn Sie bereits Pro­gram­mier­erfah­rung haben und nicht gerade erst das Pro­gram­mie­ren lernen, können hier schnell Fehler auftreten, da die In­di­zie­rung in den meisten anderen Pro­gram­mier­spra­chen bei null startet.

Zugriff via Ele­ment­na­men

Wie bereits erwähnt können Lis­ten­ele­men­te in R benannt werden. Diese Namen lassen sich bei Bedarf für den Ele­ment­zu­griff verwenden. Für den Ele­ment­zu­griff über den Namen gibt es zwei ver­schie­de­ne Varianten: Sie können doppelte eckige Klammern in Kom­bi­na­ti­on mit dem Ele­ment­na­men als R-String oder das Dol­lar­zei­chen gefolgt vom Ele­ment­na­men nutzen. Ein Code­bei­spiel hilft zur Ver­an­schau­li­chung:

person &lt;-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))
print(person[["name"]])
print(person$name)
R

In beiden Fällen wird durch das print-Statement "Max Mustermann" auf dem Bild­schirm aus­ge­ge­ben.

List Functions in R: Die wich­tigs­ten Funk­tio­nen

Wenn Sie mit Listen arbeiten, gibt es eine Reihe nütz­li­cher R-Funk­tio­nen, die Ihnen dabei helfen, bestimmte Ope­ra­tio­nen durch­zu­füh­ren.

append()

Mit append() können Sie Elemente am Ende Ihrer Liste einfügen. Die Funktion erwartet als ersten Über­ga­be­pa­ra­me­ter die Liste, an die das Element an­ge­han­gen werden soll, und als zweiten Parameter das ein­zu­fü­gen­de Element.

liste &lt;-list(1,2,3,4)
append(liste, 5)
R
Hinweis

Wenn das ein­zu­fü­gen­de Element einen Namen hat, können Sie diesen im Funk­ti­ons­auf­ruf einfach mit­an­ge­ben.

Die append()-List-Function in R ist nicht die einzige Mög­lich­keit, Elemente zu Ihrer Liste hin­zu­zu­fü­gen. Oftmals funk­tio­niert die In­dex­schreib­wei­se mit doppelten eckigen Klammern, in der Sie einen noch nicht exis­ten­ten Index nutzen, die schnel­le­re Variante:

liste &lt;-list(1,2,3,4)
liste[[5]] &lt;-5
R

length()

Mit einem Aufruf des R-Commands length() können Sie her­aus­fin­den, wie viele Elemente Ihre Liste be­inhal­tet. Die Funktion erwartet als Über­ga­be­pa­ra­me­ter die Liste, deren Länge Sie in­ter­es­siert.

liste &lt;- list(1,2,3,4)
print(length(liste))
R

Kon­ka­te­na­ti­on mit c()

In R können Sie zwei Listen zu einer Liste zu­sam­men­fas­sen. Hierfür ist die Funktion c() zu verwenden, die als Parameter beide Listen erwartet und eine kon­ka­te­nier­te Liste zu­rück­lie­fert.

liste1 &lt;- list(1,2,3,4)
liste2 &lt;- list(5,6,7,8)
liste_konkateniert &lt;- c(liste1, liste2)
R

names()

Wenn Sie eine R-List mit Namen erstellt haben, lassen Sie sich mit der R-List-Function names() die Namen der Objekte Ihrer Liste anzeigen. Die Funktion erwartet als Über­ga­be­pa­ra­me­ter eine Liste.

person &lt;-list(name = "Max Mustermann", alter = 27, hobbys = c("Programmieren, Kino"))
bezeichner &lt;- names(person)
R
Zum Hauptmenü