0Pricing
R Academy · Lezione

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 di 1:n (gestisce n=0)
  • seq_along(x) — sequenza sicura di indici per il vettore x
  • Usi le parentesi: 1:(n+1), non 1: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:b crea una sequenza di interi da a a b, con passo 1 (o -1 in ordine decrescente)
  • Usi seq_len(n) invece di 1:n quando 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

  1. L'operatore due punti per gli intervalli interi
  2. seq() per sequenze personalizzate
  3. rep() per ripetere i valori
  4. Vettori e sequenze con nomi
← Torna a R Academy