Benannte Vektoren
Teil des Abschnitts Grundlagen der R-Journey von Coddy — Lektion 62 von 78.
Bisher haben Sie auf Vektorelemente über numerische Positionen zugegriffen. Aber was wäre, wenn Sie stattdessen über aussagekräftige Namen auf sie zugreifen könnten? Benannte Vektoren ermöglichen es Ihnen, jedem Element Labels zuzuweisen, wodurch Ihr Code lesbarer und selbstdokumentierend wird.
Sie können einen benannten Vektor erstellen, indem Sie bei der Erstellung Namen angeben:
ages <- c(alice = 25, bob = 30, charlie = 28)
print(ages)Ausgabe:
alice bob charlie
25 30 28Um auf Elemente über den Namen zuzugreifen, verwenden Sie den Namen als Zeichenfolge in eckigen Klammern:
print(ages["bob"])Ausgabe:
bob
30Sie können auch Namen zu einem bestehenden Vektor hinzufügen, indem Sie die Funktion names() verwenden:
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
print(scores["math"])Ausgabe:
math
85Benannte Vektoren sind besonders nützlich bei der Arbeit mit Daten, die über natürliche Bezeichnungen verfügen, wie zum Beispiel beim Speichern von Schülernoten nach Fach oder von Preisen nach Produktname.
Aufgabe
EinfachSie erhalten 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ühren Sie die folgenden Operationen aus:
- Erstellen Sie einen numerischen Vektor aus den Preisen
- Weisen Sie dem Vektor die Produktnamen mithilfe der Funktion
names()zu - Geben Sie den gesamten benannten Vektor aus
- Geben Sie den Preis des zweiten Produkts aus, indem Sie über seinen Namen darauf zugreifen
- Geben Sie den Preis des letzten Produkts aus, indem Sie über seinen Namen darauf zugreifen
Wenn die Eingaben zum Beispiel wie folgt lauten:
apple,banana,orange,grape
2,1,3,4Sollte die Ausgabe wie folgt aussehen:
apple banana orange grape
2 1 3 4
banana
1
grape
4Hinweis: Greifen Sie auf das zweite und das letzte Element über ihre Namen (als Strings) zu, nicht über den numerischen Index.
Spickzettel
Benannte Vektoren ermöglichen es Ihnen, jedem Element Bezeichnungen zuzuweisen, wodurch der Zugriff auf Elemente über aussagekräftige Namen anstelle von nur numerischen Positionen möglich wird.
Erstellen Sie einen benannten Vektor, indem Sie bei der Erstellung Namen angeben:
ages <- c(alice = 25, bob = 30, charlie = 28)Greifen Sie auf Elemente über den Namen zu, indem Sie den Namen als Zeichenfolge in eckigen Klammern verwenden:
ages["bob"] # Gibt das Element mit dem Namen "bob" zurückFügen Sie einem bestehenden Vektor Namen hinzu, indem Sie die Funktion names() verwenden:
scores <- c(85, 92, 78)
names(scores) <- c("math", "science", "english")
scores["math"] # Gibt 85 zurückProbier 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: Schreiben Sie Ihren Code unten
# 1. Erstellen Sie einen numerischen Vektor aus den Preisen
# 2. Weisen Sie dem Vektor die Produktnamen mit names() zu
# 3. Geben Sie den gesamten benannten Vektor aus
# 4. Geben Sie den Preis des zweiten Produkts aus, indem Sie über seinen Namen darauf zugreifen
# 5. Geben Sie den Preis des letzten Produkts aus, indem Sie über seinen Namen darauf zugreifenDiese 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 27Rechnungs-Split-Rechner
WillkommensnachrichtBenutzereingaben abfragen10FizzBuzz mit einer Besonderheit
SpielübersichtDie FizzBuzz-Funktion13Vektoren für Fortgeschrittene
Vektor-Slicing und IndizierungLogische IndizierungVektorarithmetik & RecyclingDer %in%-Operator2Variablen und Datentypen
Numerischer DatentypGanzzahl-DatentypZeichen-DatentypLogischer DatentypDatentypen prüfenBenennungskonventionenFehlende Werte: NAZusammenfassung – Variablenerstellung5Entscheidungsfindung
If-AnweisungIf - ElseWiederholung - Einfacher TaschenrechnerVerschachteltes If - Else8Schleifen
For-SchleifeWhile-SchleifeBreakNext (Continue)Rückblick - FakultätSequenzgenerierung (seq, :)Verschachtelte SchleifenRückblick - Dynamische Eingabe3Operatoren Teil 1
Arithmetische OperatorenGanzzahlige Division und ModuloZuweisungsoperatorenWiederholung - Einfache MathematikVergleichsoperatoren6Grundlagen der Ein- und Ausgabe
Print-AusgabeCat zur AusgabeAusgabe mit VariablenEingabe lesen mit readline()Grundlagen der TypumwandlungWiederholung – AltersrechnerWiederholung – Wahr oder Falsch9Funktionen
Funktionen deklarierenFunktionsargumenteRückgabewerteWiederholung - Sigma-FunktionWiederholung - ValidierungsfunktionStandard-Parameterwerte