Menu
Coddy logo textTech

Listenelemente zugreifen

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

Listen verwenden eine andere Syntax für den Zugriff auf Elemente im Vergleich zu Vektoren. Der Hauptunterschied liegt zwischen einfachen Klammern [ ] und doppelten Klammern [[ ]].

Doppelte eckige Klammern extrahieren das tatsächliche Element aus der Liste:

my_list <- list(42, "hello", TRUE)
print(my_list[[1]])

Ausgabe:

[1] 42

Einfache eckige Klammern geben eine Teilliste zurück, die das Element enthält, nicht das Element selbst:

my_list <- list(42, "hello", TRUE)
print(my_list[1])

Ausgabe:

[[1]]
[1] 42

Dieser Unterschied ist wichtig, wenn Sie mit dem tatsächlichen Wert arbeiten möchten. Wenn ein Listenelement ein Vektor ist, ermöglichen Ihnen doppelte Klammern den direkten Zugriff darauf und die anschließende Verwendung der Vektorindizierung:

my_list <- list(c(10, 20, 30), "text")
print(my_list[[1]][2])

Ausgabe:

[1] 20

Hier ruft my_list[[1]] den Vektor ab, und [2] greift auf sein zweites Element zu. Denken Sie daran: Verwenden Sie [[ ]], wenn Sie den tatsächlichen Inhalt benötigen, und [ ], wenn Sie eine kleinere Liste möchten.

challenge icon

Aufgabe

Einfach

Du erhältst zwei Eingabezeilen:

  1. Drei durch Kommas getrennte Werte unterschiedlichen Typs (z. B. 100,hello,TRUE)
  2. Eine durch Kommas getrennte Liste von Zahlen, die als viertes Element gespeichert werden soll (z. B. 5,10,15,20)

Führe die folgenden Operationen aus:

  1. Erstelle eine Liste mit vier Elementen: dem numerischen Wert, dem Text, dem logischen Wert und dem Vektor aus Zahlen
  2. Verwende doppelte eckige Klammern, um das zweite Element (den Textwert) zu extrahieren und auszugeben
  3. Verwende einfache eckige Klammern, um das dritte Element zu extrahieren und das Ergebnis auszugeben (beachte den Unterschied im Ausgabeformat)
  4. Greife mit doppelten eckigen Klammern auf den im vierten Element gespeicherten Vektor zu. Extrahiere anschließend mithilfe der Vektorindizierung seinen dritten Wert und gib ihn aus
  5. Gib die Summe aller Zahlen im vierten Element aus (greife mit doppelten eckigen Klammern auf den Vektor zu und verwende sum())

Wenn die Eingaben beispielsweise folgendermaßen lauten:

42,world,FALSE
8,16,24,32,40

Die Ausgabe sollte folgendermaßen aussehen:

[1] "world"
[[1]]
[1] FALSE

[1] 24
[1] 120

Erklärung:

  • my_list[[2]] extrahiert den tatsächlichen Textwert: „world“
  • my_list[3] gibt eine Unterliste zurück, die FALSE enthält (beachte das [[1]] in der Ausgabe)
  • my_list[[4]][3] greift auf den Vektor zu und ruft anschließend sein drittes Element ab: 24
  • sum(my_list[[4]]) berechnet 8+16+24+32+40 = 120

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
input1 <- suppressWarnings(readLines(con, n = 1))  # Erste Zeile: drei durch Komma getrennte Werte
input2 <- suppressWarnings(readLines(con, n = 1))  # Zweite Zeile: durch Komma getrennte Zahlen für Vektor
close(con)

# Die erste Eingabezeile in separate Werte aufteilen
values <- strsplit(input1, ",")[[1]]
numeric_val <- as.numeric(values[1])
text_val <- values[2]
logical_val <- as.logical(values[3])

# Die zweite Eingabezeile in einen numerischen Vektor umwandeln
vector_val <- as.numeric(strsplit(input2, ",")[[1]])

# TODO: Schreiben Sie Ihren Code unten
# 1. Erstellen Sie eine Liste mit vier Elementen: numeric_val, text_val, logical_val und vector_val
# 2. Verwenden Sie doppelte Klammern [[ ]], um das zweite Element zu extrahieren und auszugeben
# 3. Verwenden Sie einfache Klammern [ ], um das dritte Element zu extrahieren und auszugeben
# 4. Greifen Sie mit doppelten Klammern auf das vierte Element zu und extrahieren Sie dessen dritten Wert
# 5. Geben Sie die Summe aller Zahlen im vierten Element 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

Übe selbstständig: Online-R-Compiler