0Pricing
R Academy · Lektion

Der Doppelpunktoperator für Ganzzahlbereiche

Verwenden Sie den Doppelpunktoperator, um schnell Ganzzahlsequenzen zu erstellen.

Der Doppelpunktoperator für Ganzzahlbereiche ist eine kostenlose R Academy-Lektion auf CoddyKit. Dies ist Lektion 1 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.

Der Doppelpunktoperator

Der Operator : erzeugt eine Ganzzahlsequenz von einem Startwert bis zu einem Endwert, mit einer Schrittweite von 1 (oder -1 bei absteigenden Sequenzen). Dies ist die schnellste und knappste Möglichkeit, in R einen Bereich zu erstellen.

# 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, '
')

Verwendung von : in for-Schleifen

Der Doppelpunktoperator wird am häufigsten für Zähler in for-Schleifen verwendet. Er erstellt die Sequenz direkt, ohne dass eine separate Variable erforderlich ist, und hält den Code dadurch 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 und dezimale Bereiche

Der Operator : funktioniert mit negativen Zahlen und sogar mit Dezimalzahlen (die Schrittweite ist jedoch immer 1 oder -1). Wenn Start- und Endwert gleich sind, gibt er einen einzelnen Wert zurück.

# 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() für sichere Längensequenzen

seq_len(n) erzeugt die Sequenz 1, 2, ..., n. Im Gegensatz zu 1:n ist diese Funktion sicherer: Bei n = 0 gibt sie einen leeren Vektor statt c(1, 0) zurück und verhindert dadurch Fehler in Schleifen.

# 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() für Indexsequenzen

seq_along(x) erzeugt die Sequenz 1:length(x) — einen Index pro Element von x. Dies ist die sicherste Möglichkeit, einen Vektor anhand seiner Indizes zu durchlaufen, da Vektoren der Länge null korrekt behandelt werden.

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], '
')
}

Doppelpunktbereiche bei der Vektorindizierung

Der Operator : wird häufig verwendet, um einen Ausschnitt aus einem Vektor oder einer Matrix zu extrahieren. Dadurch erhalten Sie eine zusammenhängende Teilsequenz von Elementen.

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], '
')

Einen Vektor mit dem Doppelpunkt umkehren

Durch die Kombination von length() und dem Operator : können Sie einen Vektor auf einfache Weise umkehren. Die Verwendung von rev() entspricht eher dem üblichen R-Stil, aber der Ansatz mit dem Doppelpunkt veranschaulicht die Funktionsweise von Bereichen.

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), '
')

Mit : Testdaten erstellen

Der Doppelpunktoperator eignet sich gut, um schnell Testvektoren und -matrizen zur Erkundung zu erstellen. Sie können ihn mit arithmetischen Operationen kombinieren, um anspruchsvollere Testdaten zu erzeugen.

# 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), '
')

Warnung zur Priorität des Doppelpunktoperators

Denken Sie daran: : hat eine höhere Priorität als + und -. Daher bedeutet 1:n-1 (1:n) - 1 und nicht 1:(n-1). Setzen Sie arithmetische Ausdrücke in Sequenzgrenzen immer in Klammern.

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)], '
')

Bereiche kombinieren

Mit c() können Sie mehrere Bereiche kombinieren. Dadurch entsteht ein nicht zusammenhängender Indexvektor, der sich zur Auswahl bestimmter Teile eines größeren Vektors eignet.

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, '
')

Ganzzahlbereiche: Zusammenfassung

Der Doppelpunktoperator und seine Ergänzungen sind wichtige Werkzeuge in R:

  • a:b — Ganzzahlsequenz von a bis b (Schrittweite 1 oder -1)
  • seq_len(n) — sichere Variante von 1:n (behandelt n=0 korrekt)
  • seq_along(x) — sichere Indexsequenz für den Vektor x
  • Verwenden Sie Klammern: 1:(n+1) statt 1:n+1
  • Besonders geeignet für Schleifenzähler, das Extrahieren von Ausschnitten und schnelle Testdaten
# 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], '
')

Kurze Verständnisprüfung

Was ergibt 1:n + 1, wenn n = 4 ist?

Rückblick: Der Doppelpunktoperator

Gute Arbeit! Dies sind die wichtigsten Erkenntnisse aus dieser Lektion:

  • a:b erstellt eine Ganzzahlsequenz von a bis b, mit einer Schrittweite von 1 (oder -1 bei absteigenden Sequenzen)
  • Verwenden Sie seq_len(n) statt 1:n, wenn n den Wert 0 annehmen kann
  • Verwenden Sie seq_along(x), um in Schleifen sicher über Vektorindizes zu iterieren
  • Der Doppelpunkt : hat eine höhere Priorität als +/- — setzen Sie arithmetische Grenzen immer in Klammern
  • Bereiche können mit c() zu nicht zusammenhängenden Ausschnitten kombiniert werden
# 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
')
}

Häufig gestellte Fragen

Ist die Lektion „Der Doppelpunktoperator für Ganzzahlbereiche“ kostenlos?

Ja — der vollständige Text von „Der Doppelpunktoperator für Ganzzahlbereiche“ 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 „Der Doppelpunktoperator für Ganzzahlbereiche“?

Verwenden Sie den Doppelpunktoperator, um schnell Ganzzahlsequenzen zu erstellen. 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 1 von 4.

Wie lange dauert die Lektion „Der Doppelpunktoperator für Ganzzahlbereiche“?

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

  1. Der Doppelpunktoperator für Ganzzahlbereiche
  2. seq() für benutzerdefinierte Sequenzen
  3. rep() für wiederholte Werte
  4. Benannte Vektoren und Sequenzen
← Zurück zu R Academy