Navngitte vektorer og navngitte sekvenser
Tildel og hent navn på vektorer for mer lesbar kode.
Navngitte vektorer og navngitte sekvenser er en gratis leksjon i R Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i R Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i R Academy inneholder totalt 4 leksjoner.
Introduksjon til navngitte vektorer
En navngitt vektor er en vektor der hvert element har et tilknyttet navn (en tekstetikett). Navn gjør koden mer lesbar og lar deg hente ut elementer etter navn i stedet for etter posisjonsindeks.
# 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)Opprette navngitte vektorer med c()
Den enkleste måten å opprette en navngitt vektor på er å bruke par av typen name = value inne i c(). Navn kan være en hvilken som helst gyldig tekststreng. Hvis de inneholder mellomrom eller spesialtegn, må du omslutte dem med backticks eller anførselstegn.
# 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), '
')Funksjonen names()
names(x) henter navnene til en vektor som en tekstvektor. Du kan også tilordne navn etter opprettelsen ved å bruke names(x) <- c(...), noe som endrer vektoren direkte.
# 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), '
')Hente ut elementer etter navn
Hent ut elementer fra navngitte vektorer ved å bruke x["name"] eller x[["name"]]. Enkeltklammene [] returnerer et navngitt delsett, mens [[]] bare returnerer verdien uten navnet.
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')])setNames() i funksjonell stil
setNames(x, nm) returnerer en kopi av x med navnene satt til nm, uten å endre originalen. Dette er nyttig i pipelines der du vil navngi en vektor som en del av en kjede med operasjoner.
# 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], '
')Endre navn
Du kan endre individuelle navn ved å indeksere inn i names(x). Dette er nyttig når du må gi nytt navn til et delsett av elementene uten å opprette hele vektoren på nytt.
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)Navngitte sekvenser med seq() og names()
Du kan opprette en navngitt sekvens ved å kombinere seq() med setNames(). Dette er spesielt nyttig for månedlige eller ukentlige indekser, der navn gir de numeriske verdiene mer kontekst.
# 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')]), '
')Filtrere navngitte vektorer
Navngitte vektorer støtter både logisk indeksering og tekstindeksering. Du kan velge elementer etter navn og filtrere dem etter verdi samtidig, noe som gjør navngitte vektorer svært uttrykksfulle for små oppslagstabeller.
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))Fjerne navn med unname()
unname(x) fjerner alle navn fra en vektor og returnerer bare verdiene. Dette er nyttig når du sender data til funksjoner som ikke forventer navngitte vektorer, eller når navn gjør resultatet visuelt rotete.
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)), '
')Navngitte vektorer som oppslagstabeller
En av de mest nyttige bruksområdene for navngitte vektorer er som en oppslagstabell: en kobling fra nøkler til verdier. I stedet for en kjede med if-else-setninger kan du bruke en navngitt vektor og indeksere inn i den.
# 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]], '
')Navngitte vektorer: viktige fakta
Oppsummering av funksjonene til navngitte vektorer i R:
- Opprett med
c(name = value, ...)eller tilordne navn mednames(x) <- c(...) - Hent ut etter navn med
x['name'](beholder navnet) ellerx[['name']](bare verdien) setNames(x, nm)returnerer en navngitt kopi uten å endre originalenunname(x)fjerner alle navn- Navngitte vektorer fungerer som elegante oppslagstabeller (og erstatter if-else-kjeder)
# 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))Kort kontroll
Hva er forskjellen mellom x['key'] og x[['key']] når x er en navngitt vektor?
Oppsummering: navngitte vektorer
Godt jobbet! Dette er de viktigste punktene fra leksjonen:
- Navngitte vektorer kobler hvert element til en tekstetikett
- Opprett med syntaksen
c(name = val)eller tilordne navn mednames(x) <- ... x['name']returnerer et navngitt delsett, mensx[['name']]bare returnerer verdiensetNames()er den funksjonelle måten å legge til navn på uten å endre originalen- Bruk navngitte vektorer som oppslagstabeller for å erstatte omstendelige if-else-kjeder
unname()fjerner navn når du trenger de rå verdiene
# 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)], '
')Lær deg R med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 43
- Leksjoner
- 159
Ofte stilte spørsmål
Er leksjonen «Navngitte vektorer og navngitte sekvenser» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien R Academy, inkludert «Navngitte vektorer og navngitte sekvenser», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i R Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Navngitte vektorer og navngitte sekvenser»?
Tildel og hent navn på vektorer for mer lesbar kode. Du øver på R Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med R Academy?
Ingen tidligere erfaring er nødvendig. R Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Navngitte vektorer og navngitte sekvenser»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne R Academy-leksjonen?
Ja. Alle R Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Kolonoperatoren for heltallsintervaller
- seq() for egendefinerte sekvenser
- rep() for gjentatte verdier
- Navngitte vektorer og navngitte sekvenser