Menu
Coddy logo textTech

Benannte Listen

Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 74 von 78.

Genau wie benannte Vektoren können Listen Namen für ihre Elemente zugewiesen bekommen. Dies macht Ihren Code lesbarer und ermöglicht es Ihnen, auf Elemente über aussagekräftige Bezeichnungen anstatt über numerische Positionen zuzugreifen.

Sie können beim Erstellen der Liste Namen zuweisen:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person)

Ausgabe:

$name
[1] "Alice"

$age
[1] 25

$active
[1] TRUE

Beachten Sie, dass die Ausgabe nun $name anstelle von [[1]] anzeigt. Um auf benannte Elemente zuzugreifen, verwenden Sie den $-Operator:

person <- list(name = "Alice", age = 25, active = TRUE)
print(person$age)

Ausgabe:

[1] 25

Sie können auch doppelte Klammern mit dem Namen als String verwenden, was nützlich ist, wenn der Name in einer Variablen gespeichert ist:

person <- list(name = "Alice", age = 25)
print(person[["name"]])

Ausgabe:

[1] "Alice"

Das Ändern von benannten Elementen funktioniert auf die gleiche Weise. Verwenden Sie $, um bestehende Werte zu ändern oder neue hinzuzufügen:

person <- list(name = "Alice", age = 25)
person$age <- 26
person$city <- "Paris"
print(person)

Ausgabe:

$name
[1] "Alice"

$age
[1] 26

$city
[1] "Paris"
challenge icon

Aufgabe

Einfach

Sie erhalten drei Eingabezeilen:

  1. Ein Buchtitel (z. B. The Great Gatsby)
  2. Ein Buchautor (z. B. F. Scott Fitzgerald)
  3. Das Erscheinungsjahr (z. B. 1925)

Führen Sie die folgenden Operationen aus:

  1. Erstellen Sie eine benannte Liste namens book mit drei Elementen: title, author und year (konvertieren Sie das Jahr in einen numerischen Wert)
  2. Geben Sie den Titel des Buches mit dem $-Operator aus
  3. Geben Sie das Jahr des Buches unter Verwendung von doppelten Klammern mit dem Namen als String aus
  4. Aktualisieren Sie das year um 1 Jahr später unter Verwendung des $-Operators
  5. Fügen Sie ein neues Element namens available mit dem Wert TRUE hinzu
  6. Geben Sie die vollständige aktualisierte Liste aus

Wenn die Eingaben zum Beispiel wie folgt lauten:

1984
George Orwell
1949

Sollte die Ausgabe wie folgt aussehen:

[1] "1984"
[1] 1949
$title
[1] "1984"

$author
[1] "George Orwell"

$year
[1] 1950

$available
[1] TRUE

Erklärung:

  • book$title gibt den Wert des Titels aus
  • book[["year"]] gibt das ursprüngliche Jahr aus
  • Das Jahr wird von 1949 auf 1950 aktualisiert
  • Ein neues Element available wird mit dem Wert TRUE hinzugefügt

Spickzettel

Listen können Namen für ihre Elemente zugewiesen bekommen, um eine bessere Lesbarkeit und den Zugriff über aussagekräftige Bezeichnungen zu ermöglichen.

Erstellen Sie eine benannte Liste, indem Sie während der Erstellung Namen zuweisen:

person <- list(name = "Alice", age = 25, active = TRUE)

Greifen Sie auf benannte Elemente mit dem $-Operator zu:

person$age  # Gibt 25 zurück

Greifen Sie auf benannte Elemente mit doppelten eckigen Klammern und dem Namen als Zeichenfolge zu:

person[["name"]]  # Gibt "Alice" zurück

Bestehende benannte Elemente ändern:

person$age <- 26

Neue benannte Elemente hinzufügen:

person$city <- "Paris"

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
title <- suppressWarnings(readLines(con, n = 1))
author <- suppressWarnings(readLines(con, n = 1))
year <- suppressWarnings(readLines(con, n = 1))
close(con)

# TODO: Schreiben Sie Ihren Code unten
# 1. Erstellen Sie eine benannte Liste namens 'book' mit den Elementen: title, author und year (year in numerisch umwandeln)
# 2. Geben Sie den Titel des Buches mit dem $-Operator aus
# 3. Geben Sie das Jahr des Buches unter Verwendung von doppelten Klammern mit dem Namen als String aus
# 4. Aktualisieren Sie das Jahr auf 1 Jahr später unter Verwendung des $-Operators
# 5. Fügen Sie ein neues Element namens 'available' mit dem Wert TRUE hinzu
# 6. Geben Sie die vollständige aktualisierte Liste aus
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen