R Academy · Lektion

Kolonoperatoren til heltalsintervaller

Brug kolonoperatoren til hurtigt at oprette heltalssekvenser.

Lektion 1 af 413 trin

Kolonoperatoren til heltalsintervaller er en gratis R Academy-lektion på CoddyKit. Dette er lektion 1 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i R Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. R Academy-kurset indeholder 4 lektioner i alt.

Kolonoperatoren

Operatoren : genererer en heltalssekvens fra en startværdi til en slutværdi med trin på 1 (eller -1 ved faldende rækkefølge). Det er den hurtigste og mest kompakte måde at oprette et interval på i R.

# Basic integer range
ones_to_ten <- 1:10
cat('1 to 10:', ones_to_ten, '
')

# Descending range
ten_to_one <- 10:1
cat('10 to 1:', ten_to_one, '
')

Brug af : i for-løkker

Kolonoperatoren bruges oftest til tællere i for-løkker. Den opretter sekvensen direkte uden en separat variabel, så koden forbliver kompakt.

# Classic for loop with colon range
total <- 0
for (i in 1:5) {
  total <- total + i
  cat('i =', i, ', running total =', total, '
')
}
cat('Sum of 1 to 5:', total, '
')

Negative og decimale intervaller

Operatoren : fungerer med negative tal og endda decimaltal (selvom trinnet altid er 1 eller -1). Hvis startværdien er lig med slutværdien, returnerer den en enkelt værdi.

# Negative range
neg_range <- -3:3
cat('-3 to 3:', neg_range, '
')

# Range crossing zero
cross_zero <- -5:5
cat('-5 to 5:', cross_zero, '
')

# Single value
cat('5:5 =', 5:5, '
')

# Decimal start (step is still 1)
cat('1.5:5.5 =', 1.5:5.5, '
')

seq_len() til sikre længdesekvenser

seq_len(n) genererer sekvensen 1, 2, ..., n. I modsætning til 1:n er den sikrere: når n = 0, returnerer den en tom vektor i stedet for c(1, 0), så fejl i løkker undgås.

# Compare 1:n vs seq_len(n) when n = 0
n <- 0
cat('1:0 produces:', 1:n, '(length', length(1:n), ') -- DANGEROUS
')
cat('seq_len(0):', seq_len(n), '(length', length(seq_len(n)), ') -- SAFE
')

# Correct use in a loop
my_vector <- c()  # empty
for (i in seq_len(length(my_vector))) {
  cat('This will not execute
')
}
cat('Loop over empty vector is safe with seq_len
')

seq_along() til indekssekvenser

seq_along(x) genererer sekvensen 1:length(x) — ét indeks pr. element i x. Det er den sikreste måde at gennemløbe en vektor efter indeks på, fordi funktionen håndterer vektorer med længden nul korrekt.

cities <- c('Tokyo', 'Delhi', 'Shanghai', 'Dhaka', 'Cairo')

# seq_along gives indices 1 to length
cat('Indices:', seq_along(cities), '
')

# Use in loop to access both index and value
for (i in seq_along(cities)) {
  cat(i, ':', cities[i], '
')
}

Kolonintervaller i vektorindeksering

Operatoren : bruges ofte til at udtrække et udsnit fra en vektor eller matrix. Det giver dig en sammenhængende undersekvens af elementer.

temperatures <- c(18.5, 21.0, 23.4, 19.8, 25.1, 22.7, 17.3, 20.0)

# Extract a slice (elements 3 to 6)
midweek <- temperatures[3:6]
cat('Midweek temps:', midweek, '
')

# Last 3 elements
n <- length(temperatures)
cat('Last 3:', temperatures[(n-2):n], '
')

Vend en vektor med kolonoperatoren

Ved at kombinere length() og operatoren : får du en enkel måde at vende en vektor på. Det er mere idiomatisk at bruge rev(), men kolonmetoden viser, hvordan intervaller fungerer.

words <- c('data', 'science', 'with', 'R')
n <- length(words)

# Manual reverse using colon
reversed_idx <- n:1
reversed_words <- words[reversed_idx]
cat('Original:', words, '
')
cat('Reversed:', reversed_words, '
')

# Or simply:
cat('Using rev():', rev(words), '
')

Brug af : til at oprette testdata

Kolonoperatoren er praktisk til hurtigt at oprette testvektorer og -matricer, når du undersøger noget. Du kan kombinere den med aritmetik for at generere mere avancerede testdata.

# Create a simple test dataset
student_ids <- 101:110
exam_scores <- (1:10) * 8 + 20  # scores: 28, 36, 44, ...

cat('Student IDs:', student_ids, '
')
cat('Exam scores:', exam_scores, '
')
cat('Mean score:', mean(exam_scores), '
')
cat('Passing count:', sum(exam_scores >= 60), '
')

Advarsel om kolonoperatorens præcedens

Husk: : har højere præcedens end + og -. Derfor betyder 1:n-1 (1:n) - 1 og ikke 1:(n-1). Brug altid parenteser omkring aritmetik i sekvensgrænser.

n <- 5

# These look similar but produce different results
cat('1:n-1 =', 1:n - 1, '
')   # (1:5)-1 = 0 1 2 3 4
cat('1:(n-1) =', 1:(n - 1), '
') # 1:4 = 1 2 3 4

# Practical: skip last element
v <- c(10, 20, 30, 40, 50)
cat('All but last:', v[1:(length(v) - 1)], '
')

Kombinering af intervaller

Du kan kombinere flere intervaller ved hjælp af c(). Det opretter en ikke-sammenhængende indeksvektor, som er nyttig til at vælge bestemte dele af en større vektor.

data_vals <- c(5, 12, 3, 8, 15, 7, 20, 1, 9, 11)

# Select first 3 and last 3
first_and_last <- data_vals[c(1:3, 8:10)]
cat('First 3 and last 3:', first_and_last, '
')

# Skip middle: take 1:3 and 7:10
outer <- data_vals[c(1:3, 7:10)]
cat('Outer elements:', outer, '
')

Heltalsintervaller: Opsummering

Kolonoperatoren og dens ledsagere er vigtige R-værktøjer:

  • a:b — heltalssekvens fra a til b (trin 1 eller -1)
  • seq_len(n) — sikker version af 1:n (håndterer n=0)
  • seq_along(x) — sikker indekssekvens for vektoren x
  • Brug parenteser: 1:(n+1) og ikke 1:n+1
  • Velegnet til løkketællere, udsnit og hurtige testdata
# All three in action
x <- c(100, 200, 300, 400, 500)
cat('1:5         :', 1:5, '
')
cat('seq_len(5)  :', seq_len(5), '
')
cat('seq_along(x):', seq_along(x), '
')
cat('x[2:4]      :', x[2:4], '
')

Hurtigt tjek

Hvad producerer 1:n + 1, når n = 4?

Opsummering: Kolonoperatoren

Godt arbejde! Her er de vigtigste pointer fra denne lektion:

  • a:b opretter en heltalssekvens fra a til b med trin på 1 (eller -1 ved faldende rækkefølge)
  • Brug seq_len(n) i stedet for 1:n, når n kan være 0
  • Brug seq_along(x) til sikkert at gennemløbe vektorindekser i løkker
  • Kolonoperatoren : har højere præcedens end +/- — sæt altid parenteser omkring aritmetiske grænser
  • Intervaller kan kombineres med c() for at oprette ikke-sammenhængende udsnit
# Safe loop pattern with seq_along
months <- c('Jan', 'Feb', 'Mar', 'Apr', 'May')
days <- c(31, 28, 31, 30, 31)

for (i in seq_along(months)) {
  cat(months[i], ':', days[i], 'days
')
}
Gratis at komme i gang

Lær R med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
43
Lektioner
159

Ofte stillede spørgsmål

Er lektionen “Kolonoperatoren til heltalsintervaller” gratis?

Ja — alle 3 lektioner i læringssporet R Academy, inklusive “Kolonoperatoren til heltalsintervaller”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. R Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Kolonoperatoren til heltalsintervaller”?

Brug kolonoperatoren til hurtigt at oprette heltalssekvenser. Du øver dig i R Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på R Academy?

Der kræves ingen tidligere erfaring. R Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 1 af 4.

Hvor lang tid tager lektionen “Kolonoperatoren til heltalsintervaller”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne R Academy-lektion?

Ja. Alle R Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Kolonoperatoren til heltalsintervaller
  2. seq() til brugerdefinerede sekvenser
  3. rep() til gentagne værdier
  4. Navngivne vektorer og navngivne sekvenser
← Tilbage til R Academy