Menu
CoddyTech

Benannte Vektoren

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

Bisher hast du auf Vektorelemente mithilfe numerischer Positionen zugegriffen. Aber was wäre, wenn du stattdessen über aussagekräftige Namen auf sie zugreifen könntest? Benannte Vektoren ermöglichen es dir, jedem Element eine Bezeichnung zuzuweisen, wodurch dein Code lesbarer und selbstdokumentierend wird.

Du kannst einen benannten Vektor erstellen, indem du bei der Erstellung Namen angibst:

ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)

Ausgabe:

  alice     bob charlie 
     25      30      28

Um auf Elemente nach Namen zuzugreifen, verwende den Namen als Zeichenkette innerhalb eckiger Klammern:

print(ages["bob"])

Ausgabe:

bob 
 30

Du kannst einem vorhandenen Vektor auch mit der Funktion names() Namen hinzufügen:

scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])

Ausgabe:

math 
  85

Benannte Vektoren sind besonders nützlich, wenn du mit Daten arbeitest, die natürliche Bezeichnungen haben, zum Beispiel beim Speichern von Schülernoten nach Fach oder von Preisen nach Produktname.

challenge icon

Aufgabe

Einfach

Du erhältst zwei Eingabezeilen:

  1. Eine durch Kommas getrennte Liste von Produktnamen (z. B. laptop,phone,tablet,headphones)
  2. Eine durch Kommas getrennte Liste der entsprechenden Preise (z. B. 999,699,449,199)

Führe die folgenden Operationen aus:

  1. Erstelle aus den Preisen einen numerischen Vektor
  2. Weise dem Vektor mithilfe der Funktion names() die Produktnamen zu
  3. Gib den gesamten benannten Vektor aus
  4. Gib den Preis des zweiten Produkts aus, indem du über seinen Namen darauf zugreifst
  5. Gib den Preis des letzten Produkts aus, indem du über seinen Namen darauf zugreifst

Wenn die Eingaben beispielsweise wie folgt lauten:

apple,banana,orange,grape
2,1,3,4

Die Ausgabe sollte folgendermaßen aussehen:

apple banana orange  grape 
    2      1      3      4 
banana 
     1 
grape 
    4

Hinweis: Greife auf das zweite und letzte Element mit einem Namen als Index (einem String, zum Beispiel prices["banana"]) zu, nicht mit einer numerischen Position. Die Namen stammen aus der ersten Eingabezeile, suche dort also zuerst den richtigen Namen nach.

Probier es selbst

# Eingabe lesen
con <- file("stdin", "r")
products_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)

# Die durch Kommas getrennten Eingaben parsen
product_names <- strsplit(products_input, ",")[[1]]
price_values <- strsplit(prices_input, ",")[[1]]

# TODO: Schreibe deinen Code darunter
# 1. Erstelle einen numerischen Vektor aus den Preisen
# 2. Weise dem Vektor die Produktnamen mit names() zu
# 3. Gib den gesamten benannten Vektor aus
# 4. Gib den Preis des zweiten Produkts aus, indem du über seinen Namen darauf zugreifst
# 5. Gib den Preis des letzten Produkts aus, indem du über seinen Namen darauf zugreifst
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