Benannte Vektoren und Sequenzen
Weisen Sie Vektoren Namen zu und greifen Sie darauf zu, um lesbaren Code zu schreiben.
Benannte Vektoren und Sequenzen ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des R Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Einführung in benannte Vektoren
Ein benannter Vektor ist ein Vektor, bei dem jedes Element einen zugehörigen Namen (eine Zeichenkettenbezeichnung) besitzt. Namen machen Code besser lesbar und ermöglichen den Zugriff auf Elemente über ihren Namen statt über ihren Positionsindex.
# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)
cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)Benannte Vektoren mit <code>c()</code> erstellen
Die einfachste Möglichkeit, einen benannten Vektor zu erstellen, besteht darin, innerhalb von c() Paare der Form name = value zu verwenden. Namen können beliebige gültige Zeichenketten sein. Enthalten sie Leerzeichen oder Sonderzeichen, schließen Sie sie in Backticks oder Anführungszeichen ein.
# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')Die Funktion <code>names()</code>
names(x) gibt die Namen eines Vektors als Zeichenkettenvektor zurück. Sie können Namen auch nach der Erstellung zuweisen, indem Sie names(x) <- c(...) verwenden. Dadurch wird der Vektor direkt verändert.
# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')
names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)
# Retrieve names
cat('Days:', names(temps), '
')Auf Elemente über ihren Namen zugreifen
Greifen Sie mit x["name"] oder x[["name"]] auf Elemente eines benannten Vektors zu. Die einfache Klammer [] gibt eine benannte Teilmenge zurück; [[]] gibt nur den Wert ohne Namen zurück.
scores <- c(Math = 88, Science = 92, English = 75, History = 81)
# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])
# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')
# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])<code>setNames()</code> für den funktionalen Stil
setNames(x, nm) gibt eine Kopie von x zurück, deren Namen auf nm gesetzt sind, ohne das Original zu verändern. Das ist nützlich in Pipelines, wenn Sie einen Vektor als Teil einer Operationskette benennen möchten.
# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))
cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)
# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')Namen ändern
Sie können einzelne Namen ändern, indem Sie über names(x) darauf zugreifen. Das ist nützlich, wenn Sie eine Teilmenge von Elementen umbenennen müssen, ohne den gesamten Vektor neu zu erstellen.
prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50) # typo!
# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)
# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry') # capitalise
cat('Capitalised:
')
print(prices)Benannte Sequenzen mit <code>seq()</code> und <code>names()</code>
Sie können eine benannte Sequenz erstellen, indem Sie seq() mit setNames() kombinieren. Das ist besonders nützlich für monatliche oder wöchentliche Indizes, bei denen Namen den numerischen Werten zusätzlichen Kontext geben.
# Monthly average temperature with names
temps_monthly <- setNames(
c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')Benannte Vektoren filtern
Benannte Vektoren unterstützen sowohl logische als auch Zeichenkettenindizierung. Sie können Elemente anhand ihres Namens auswählen und sie gleichzeitig nach ihrem Wert filtern. Dadurch eignen sich benannte Vektoren besonders gut für kleine Nachschlagetabellen.
population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)
# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)
# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))Namen mit <code>unname()</code> entfernen
unname(x) entfernt alle Namen aus einem Vektor und gibt nur die Werte zurück. Das ist nützlich, wenn Sie Daten an Funktionen übergeben, die keine benannten Vektoren erwarten, oder wenn Namen die Ausgabe unübersichtlich machen.
named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)
unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)
# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')Benannte Vektoren als Nachschlagetabellen
Eine der leistungsfähigsten Anwendungen benannter Vektoren ist ihre Verwendung als Nachschlagetabelle: Sie ordnen Schlüssel Werten zu. Statt einer Kette von if-else-Anweisungen verwenden Sie einen benannten Vektor und greifen per Index darauf zu.
# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
Nov=30, Dec=31)
# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')Benannte Vektoren: Wichtige Fakten
Zusammenfassung der Eigenschaften benannter Vektoren in R:
- Erstellen mit
c(name = value, ...)oder Zuweisen übernames(x) <- c(...) - Zugriff über den Namen mit
x['name'](behält den Namen bei) oderx[['name']](nur der Wert) setNames(x, nm)gibt eine benannte Kopie zurück, ohne das Original zu verändernunname(x)entfernt alle Namen- Benannte Vektoren eignen sich als elegante Nachschlagetabellen (und ersetzen if-else-Ketten)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)
# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))Kurzer Test
Was ist der Unterschied zwischen x['key'] und x[['key']], wenn x ein benannter Vektor ist?
Rückblick: Benannte Vektoren
Sehr gute Arbeit! Die wichtigsten Erkenntnisse aus dieser Lektion:
- Benannte Vektoren verknüpfen jedes Element mit einer Zeichenkettenbezeichnung
- Erstellen mit der Syntax
c(name = val)oder Zuweisen mitnames(x) <- ... x['name']gibt eine benannte Teilmenge zurück;x[['name']]gibt nur den Wert zurücksetNames()ist die funktionale (nicht verändernde) Möglichkeit, Namen zuzuweisen- Verwenden Sie benannte Vektoren als Nachschlagetabellen, um ausführliche if-else-Ketten zu ersetzen
unname()entfernt Namen, wenn die reinen Werte benötigt werden
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80
# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')Häufig gestellte Fragen
Ist die Lektion „Benannte Vektoren und Sequenzen“ kostenlos?
Ja — der vollständige Text von „Benannte Vektoren und Sequenzen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des R Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der R Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Benannte Vektoren und Sequenzen“?
Weisen Sie Vektoren Namen zu und greifen Sie darauf zu, um lesbaren Code zu schreiben. Du übst R Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um R Academy zu starten?
Keine Vorkenntnisse erforderlich. R Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „Benannte Vektoren und Sequenzen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser R Academy-Lektion Code schreiben und ausführen?
Ja. Jede R Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Der Doppelpunktoperator für Ganzzahlbereiche
- seq() für benutzerdefinierte Sequenzen
- rep() für wiederholte Werte
- Benannte Vektoren und Sequenzen