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 28Um auf Elemente nach Namen zuzugreifen, verwende den Namen als Zeichenkette innerhalb eckiger Klammern:
print(ages["bob"])Ausgabe:
bob
30Du 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
85Benannte 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.
Aufgabe
EinfachDu erhältst zwei Eingabezeilen:
- Eine durch Kommas getrennte Liste von Produktnamen (z. B.
laptop,phone,tablet,headphones) - Eine durch Kommas getrennte Liste der entsprechenden Preise (z. B.
999,699,449,199)
Führe die folgenden Operationen aus:
- Erstelle aus den Preisen einen numerischen Vektor
- Weise dem Vektor mithilfe der Funktion
names()die Produktnamen zu - Gib den gesamten benannten Vektor aus
- Gib den Preis des zweiten Produkts aus, indem du über seinen Namen darauf zugreifst
- 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,4Die Ausgabe sollte folgendermaßen aussehen:
apple banana orange grape
2 1 3 4
banana
1
grape
4Hinweis: 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 zugreifstDiese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Grundlagen
4Operatoren Teil 2
Logische Operatoren (AND, OR)Logische Operatoren Teil 2 (NOT)Wiederholung – einfache LogikVektorisierte Logik Teil 1Vektorisierte Logik Teil 27Rechner zum Teilen der Rechnung
BegrüßungsnachrichtBenutzereingaben erfassen10FizzBuzz mit einer Wendung
SpielübersichtDie FizzBuzz-Funktion13Fortgeschrittene Vektoren
Vektor-Slicing und -IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahliger DatentypZeichen-DatentypLogischer DatentypDatentypen überprüfenNamenskonventionenFehlende Werte: NAZusammenfassung – Variablen erstellen5Entscheidungen treffen
If-AnweisungIf - ElseWiederholung – Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Wiederholung – FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenWiederholung – Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahldivision und ModuloZuweisungsoperatorenRückblick – Einfache MathematikVergleichsoperatoren6Grundlegende Ein- und Ausgabe
Ausgabe mit printcat zur AusgabeAusgabe mit VariablenEingaben mit readline() lesenGrundlagen der TypkonvertierungRückblick – AltersrechnerRückblick – Wahr oder falsch9Funktionen
Eine Funktion deklarierenFunktionsargumenteRückgabewerteWiederholung – Sigma-FunktionWiederholung – ValidierungsfunktionStandardparameterwerteÜbe selbstständig: Online-R-Compiler