Operator dwukropka dla zakresów liczb całkowitych
Używaj operatora dwukropka do szybkiego tworzenia sekwencji liczb całkowitych.
Operator dwukropka dla zakresów liczb całkowitych to bezpłatna lekcja R Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej R Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs R Academy zawiera 4 lekcji w sumie.
Operator dwukropka
Operator : generuje sekwencję liczb całkowitych od wartości początkowej do końcowej, zwiększając ją o 1 (lub zmniejszając o 1 w przypadku sekwencji malejącej). Jest to najszybszy i najbardziej zwięzły sposób tworzenia zakresu w 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, '
')Używanie : w pętlach for
Operator dwukropka jest najczęściej używany jako licznik pętli for. Tworzy sekwencję bezpośrednio w kodzie, bez potrzeby używania osobnej zmiennej, dzięki czemu kod pozostaje zwięzły.
# 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, '
')Ujemne i dziesiętne zakresy
Operator : działa z liczbami ujemnymi, a nawet dziesiętnymi (choć krok zawsze wynosi 1 lub -1). Jeśli wartość początkowa jest równa końcowej, zwracana jest pojedyncza wartość.
# 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() do bezpiecznego tworzenia sekwencji długości
seq_len(n) generuje sekwencję 1, 2, ..., n. W przeciwieństwie do 1:n jest bezpieczniejsza: gdy n = 0, zwraca pusty wektor zamiast c(1, 0), zapobiegając błędom w pętlach.
# 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() do tworzenia sekwencji indeksów
seq_along(x) generuje sekwencję 1:length(x) — po jednym indeksie dla każdego elementu x. Jest to najbezpieczniejszy sposób iterowania po wektorze za pomocą indeksów, ponieważ poprawnie obsługuje wektory o długości zero.
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], '
')
}Zakres dwukropka w indeksowaniu wektorów
Operator : jest często używany do wyodrębniania fragmentu wektora lub macierzy. Pozwala to uzyskać ciągły podzbiór elementów.
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], '
')Odwracanie wektora za pomocą dwukropka
Połączenie length() z operatorem : daje prosty sposób na odwrócenie wektora. Użycie rev() jest bardziej idiomatyczne, ale podejście z dwukropkiem pokazuje, jak działają zakresy.
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), '
')Używanie : do tworzenia danych testowych
Operator dwukropka jest przydatny do szybkiego tworzenia testowych wektorów i macierzy na potrzeby eksperymentów. Można łączyć go z operacjami arytmetycznymi, aby generować bardziej złożone dane testowe.
# 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), '
')Uwaga dotycząca kolejności operatora dwukropka
Pamiętaj: : ma wyższy priorytet niż + i -. Dlatego 1:n-1 oznacza (1:n) - 1, a nie 1:(n-1). Zawsze umieszczaj działania arytmetyczne w granicach sekwencji w nawiasach.
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)], '
')Łączenie zakresów
Można łączyć wiele zakresów za pomocą c(). Tworzy to nieciągły wektor indeksów, przydatny podczas wybierania określonych fragmentów większego wektora.
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, '
')Zakresy liczb całkowitych: podsumowanie
Operator dwukropka i powiązane z nim funkcje to podstawowe narzędzia języka R:
a:b— sekwencja liczb całkowitych od a do b (krok 1 lub -1)seq_len(n)— bezpieczna wersja1:n(obsługuje n=0)seq_along(x)— bezpieczna sekwencja indeksów wektora x- Używaj nawiasów:
1:(n+1), a nie1:n+1 - Przydatne do liczników pętli, wyodrębniania fragmentów i szybkiego tworzenia danych testowych
# 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], '
')Szybkie sprawdzenie
Co powstaje w wyniku 1:n + 1, gdy n = 4?
Podsumowanie: operator dwukropka
Świetna praca! Oto najważniejsze informacje z tej lekcji:
a:btworzy sekwencję liczb całkowitych od a do b, zwiększając wartość o 1 (lub zmniejszając o 1 w przypadku sekwencji malejącej)- Używaj
seq_len(n)zamiast1:n, gdy n może wynosić 0 - Używaj
seq_along(x), aby bezpiecznie iterować po indeksach wektora w pętlach - Dwukropek
:ma wyższy priorytet niż+/-— zawsze umieszczaj działania arytmetyczne w granicach w nawiasach - Zakresy można łączyć za pomocą
c(), aby wybierać nieciągłe fragmenty
# 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
')
}Często zadawane pytania
Czy lekcja „Operator dwukropka dla zakresów liczb całkowitych” jest bezpłatna?
Tak — pełny tekst „Operator dwukropka dla zakresów liczb całkowitych” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu R Academy, przejdź na CoddyKit PRO. Kurs R Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Operator dwukropka dla zakresów liczb całkowitych”?
Używaj operatora dwukropka do szybkiego tworzenia sekwencji liczb całkowitych. Ćwiczysz R Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć R Academy?
Nie wymagamy żadnego doświadczenia. R Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.
Ile czasu zajmuje lekcja „Operator dwukropka dla zakresów liczb całkowitych”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji R Academy?
Tak. Każda lekcja R Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Operator dwukropka dla zakresów liczb całkowitych
- seq() dla niestandardowych sekwencji
- rep() dla powtarzających się wartości
- Nazwane wektory i sekwencje