Tamsayı Aralıkları için İki Nokta İşleci
Tamsayı dizilerini hızlıca oluşturmak için iki nokta işleçini kullanın.
Tamsayı Aralıkları için İki Nokta İşleci, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
İki Nokta İşleci
: işleci, başlangıç değerinden bitiş değerine kadar 1'er (azalan dizilerde -1'er) artırarak bir tam sayı dizisi oluşturur. R'de aralık oluşturmanın en hızlı ve en kısa yolu budur.
# 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, '
')for Döngülerinde : Kullanımı
İki nokta işleci en yaygın olarak for döngülerinin sayaçlarında kullanılır. Ayrı bir değişkene gerek kalmadan diziyi satır içinde oluşturur ve kodunuzu kısa tutar.
# 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, '
')Negatif ve Ondalıklı Aralıklar
: işleci negatif sayılarla, hatta ondalık sayılarla da çalışır (ancak adım her zaman 1 veya -1'dir). Başlangıç ve bitiş eşitse tek bir değer döndürür.
# 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, '
')Güvenli Uzunluk Dizileri için seq_len()
seq_len(n), 1, 2, ..., n dizisini oluşturur. 1:n'in aksine daha güvenlidir: n = 0 olduğunda c(1, 0) yerine boş bir vektör döndürerek döngülerdeki hataları önler.
# 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
')İndeks Dizileri için seq_along()
seq_along(x), x'in her öğesi için bir indeks olmak üzere 1:length(x) dizisini oluşturur. Sıfır uzunluklu vektörleri doğru şekilde ele aldığı için bir vektörde indeks kullanarak yineleme yapmanın en güvenli yoludur.
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], '
')
}Vektör İndekslemede İki Nokta Aralığı
: işleci, bir vektör veya matristen sık sık bir dilim çıkarmak için kullanılır. Böylece öğelerin bitişik bir alt dizisini elde edersiniz.
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], '
')İki Nokta İşleciyle Vektörü Tersine Çevirme
length() ile : işlecini birleştirmek, bir vektörü tersine çevirmek için basit bir yol sağlar. rev() kullanımı daha yerleşik bir yaklaşımdır; ancak iki nokta yaklaşımı aralıkların nasıl çalıştığını gösterir.
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), '
')Sınama Verileri Oluşturmak için : Kullanımı
İki nokta işleci, inceleme amacıyla sınama vektörleri ve matrisleri hızlıca oluşturmak için kullanışlıdır. Önemsiz olmayan sınama verileri oluşturmak için bunu aritmetik işlemlerle birleştirebilirsiniz.
# 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), '
')İki Nokta İşleci Önceliği Uyarısı
Unutmayın: :, + ve -'den daha yüksek önceliğe sahiptir. Bu nedenle 1:n-1, 1:(n-1) değil, (1:n) - 1 anlamına gelir. Dizi sınırlarındaki aritmetik işlemlerin çevresinde her zaman parantez kullanın.
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)], '
')Aralıkları Birleştirme
c() kullanarak birden çok aralığı birleştirebilirsiniz. Böylece daha büyük bir vektörün belirli bölümlerini seçmek için kullanışlı olan, bitişik olmayan bir indeks vektörü oluşturulur.
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, '
')Tam Sayı Aralıkları: Özet
İki nokta işleci ve yardımcıları, temel R araçlarıdır:
a:b— a'dan b'ye tam sayı dizisi (adım 1 veya -1)seq_len(n)—1:n'in güvenli sürümü (n=0 durumunu ele alır)seq_along(x)— x vektörü için güvenli indeks dizisi- Parantez kullanın:
1:n+1yerine1:(n+1) - Döngü sayaçları, dilimleme ve hızlı sınama verileri için idealdir
# 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], '
')Hızlı Kontrol
n = 4 olduğunda 1:n + 1 ne üretir?
Özet: İki Nokta İşleci
Harika iş çıkardınız! Bu dersten çıkarılacak temel noktalar şunlardır:
a:b, a'dan b'ye 1'er (azalan dizilerde -1'er) ilerleyen bir tam sayı dizisi oluşturur- n değeri 0 olabilirse
1:nyerineseq_len(n)kullanın - Döngülerde vektör indeksleri üzerinde güvenli şekilde yineleme yapmak için
seq_along(x)kullanın - İki nokta
:,+/-'dan daha yüksek önceliğe sahiptir — aritmetik sınırları her zaman parantez içine alın - Aralıklar, bitişik olmayan dilimleme için
c()ile birleştirilebilir
# 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
')
}Sıkça Sorulan Sorular
“Tamsayı Aralıkları için İki Nokta İşleci” dersi ücretsiz mi?
Evet — “Tamsayı Aralıkları için İki Nokta İşleci” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“Tamsayı Aralıkları için İki Nokta İşleci” dersinde ne öğreneceğim?
Tamsayı dizilerini hızlıca oluşturmak için iki nokta işleçini kullanın. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Tamsayı Aralıkları için İki Nokta İşleci” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Tamsayı Aralıkları için İki Nokta İşleci
- Özel Diziler için seq()
- Tekrarlanan Değerler için rep()
- Adlandırılmış Vektörler ve Diziler