L'operatore due punti per gli intervalli interi
Usi l'operatore due punti per creare rapidamente sequenze di interi.
L'operatore due punti per gli intervalli interi è una lezione R Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento R Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso R Academy include 4 lezioni in totale.
L’operatore due punti
L’operatore : genera una sequenza di interi da un valore iniziale a un valore finale, incrementando di 1 (o di -1 in ordine decrescente). È il modo più rapido e conciso per creare un intervallo in 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, '
')Usare : nei cicli for
L’operatore due punti viene usato soprattutto nei contatori dei cicli for. Crea la sequenza direttamente, senza bisogno di una variabile separata, mantenendo il codice conciso.
# 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, '
')Intervalli negativi e decimali
L’operatore : funziona con numeri negativi e persino decimali, anche se il passo è sempre 1 o -1. Se l’inizio coincide con la fine, restituisce un singolo valore.
# 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() per sequenze di lunghezza sicura
seq_len(n) genera la sequenza 1, 2, ..., n. A differenza di 1:n, è più sicuro: quando n = 0, restituisce un vettore vuoto invece di c(1, 0), evitando bug nei cicli.
# 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() per sequenze di indici
seq_along(x) genera la sequenza 1:length(x), cioè un indice per ogni elemento di x. È il modo più sicuro per scorrere un vettore tramite indice, perché gestisce correttamente i vettori di lunghezza 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], '
')
}Intervalli con i due punti nell’indicizzazione dei vettori
L’operatore : viene usato spesso per estrarre una porzione da un vettore o da una matrice. In questo modo si ottiene una sottosequenza contigua di elementi.
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], '
')Invertire un vettore con i due punti
Combinare length() e l’operatore : offre un modo semplice per invertire un vettore. Usare rev() è più idiomatico, ma l’approccio con i due punti mostra come funzionano gli intervalli.
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), '
')Usare : per creare dati di test
L’operatore due punti è utile per creare rapidamente vettori e matrici di test durante l’esplorazione. Può combinarlo con l’aritmetica per generare dati di test non banali.
# 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), '
')Avvertenza sulla precedenza dei due punti
Ricordi: : ha una precedenza maggiore di + e -. Quindi 1:n-1 significa (1:n) - 1, non 1:(n-1). Usi sempre le parentesi intorno alle operazioni aritmetiche nei limiti delle sequenze.
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)], '
')Combinare gli intervalli
È possibile combinare più intervalli usando c(). In questo modo si crea un vettore di indici non contiguo, utile per selezionare parti specifiche di un vettore più grande.
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, '
')Intervalli di interi: riepilogo
L’operatore due punti e le funzioni correlate sono strumenti essenziali di R:
a:b— sequenza di interi da a a b (passo 1 o -1)seq_len(n)— versione sicura di1:n(gestisce n=0)seq_along(x)— sequenza sicura di indici per il vettore x- Usi le parentesi:
1:(n+1), non1:n+1 - Ottimo per contatori di cicli, estrazione di porzioni e dati di test rapidi
# 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], '
')Verifica rapida
Che cosa produce 1:n + 1 quando n = 4?
Riepilogo: operatore due punti
Ottimo lavoro! Ecco i concetti principali di questa lezione:
a:bcrea una sequenza di interi da a a b, con passo 1 (o -1 in ordine decrescente)- Usi
seq_len(n)invece di1:nquando n potrebbe essere 0 - Usi
seq_along(x)per scorrere in modo sicuro gli indici di un vettore nei cicli - Due punti
:ha una precedenza maggiore di+/-; racchiuda sempre tra parentesi i limiti aritmetici - Gli intervalli possono essere combinati con
c()per estrarre porzioni non contigue
# 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
')
}Domande Frequenti
La lezione «L'operatore due punti per gli intervalli interi» è gratuita?
Sì — il testo completo di «L'operatore due punti per gli intervalli interi» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso R Academy, passa a CoddyKit PRO. Il corso R Academy include 4 lezioni in totale.
Cosa imparerò in «L'operatore due punti per gli intervalli interi»?
Usi l'operatore due punti per creare rapidamente sequenze di interi. Eserciti R Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare R Academy?
Non è richiesta alcuna esperienza precedente. R Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «L'operatore due punti per gli intervalli interi»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione R Academy?
Sì. Ogni lezione R Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- L'operatore due punti per gli intervalli interi
- seq() per sequenze personalizzate
- rep() per ripetere i valori
- Vettori e sequenze con nomi