0Pricing
R Academy · Aula

seq() para sequências personalizadas

Controle o tamanho do passo, o comprimento e a direção com seq().

seq() para sequências personalizadas é uma aula grátis de R Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de R Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de R Academy inclui 4 aulas no total.

Introdução a seq()

seq() é o gerador flexível de sequências do R. Enquanto : cria intervalos de inteiros com passo 1, seq() permite controlar o início, o fim, o tamanho do passo e o comprimento total de qualquer sequência numérica.

# Basic seq() usage
basic <- seq(1, 10)
cat('seq(1, 10):', basic, '
')

# With step size
by_two <- seq(0, 20, by = 2)
cat('seq(0, 20, by=2):', by_two, '
')

seq(from, to, by) — passo personalizado

O argumento by define o tamanho do passo entre valores consecutivos. Ele pode ser qualquer número positivo ou negativo, inclusive decimais. Isso é útil para gerar valores igualmente espaçados em intervalos não inteiros.

# Decimal step
celsius <- seq(0, 100, by = 12.5)
cat('Every 12.5 degrees:', celsius, '
')

# Step of 0.1
fine_scale <- seq(1.0, 1.5, by = 0.1)
cat('Fine scale:', fine_scale, '
')

# Negative step (descending)
countdown <- seq(10, 0, by = -2)
cat('Countdown by 2:', countdown, '
')

seq(from, to, length.out) — quantidade fixa

Quando você sabe quantos valores deseja, em vez do tamanho do passo, use length.out. R calculará o passo automaticamente para dividir o intervalo igualmente.

# 5 evenly spaced points between 0 and 1
unit_interval <- seq(0, 1, length.out = 5)
cat('5 points in [0,1]:', unit_interval, '
')

# 7 breakpoints for a histogram
breakpoints <- seq(0, 100, length.out = 7)
cat('Histogram breaks:', breakpoints, '
')

# Step is automatically calculated
step <- (100 - 0) / (7 - 1)
cat('Step size:', step, '
')

seq(along.with = x) — correspondência com um vetor

seq(along.with = x) gera a sequência de inteiros 1:length(x), idêntica a seq_along(x). Ela é útil quando você quer associar uma sequência de índices a um vetor existente.

rainfall <- c(55.2, 62.1, 48.7, 71.3, 38.9, 90.4, 45.0)

# Generate matching index sequence
idx <- seq(along.with = rainfall)
cat('Indices:', idx, '
')
cat('Rainfall:', rainfall, '
')

# Use to find position of max
cat('Position of max rainfall:', which.max(rainfall), '
')
cat('Max rainfall:', max(rainfall), 'mm
')

seq_len(n) — de 1 até n com segurança

seq_len(n) é equivalente a seq(1, n) ou 1:n, mas lida corretamente com o caso extremo em que n = 0, retornando um vetor inteiro vazio em vez de c(1, 0).

# Normal use
cat('seq_len(5):', seq_len(5), '
')

# Edge case: n = 0
cat('1:0       :', 1:0, '
')       # produces 1 0 (WRONG)
cat('seq_len(0):', seq_len(0), '
') # produces integer(0) (CORRECT)

# In practice: safe loop
my_data <- c()  # intentionally empty
for (i in seq_len(length(my_data))) {
  cat('Processing item', i, '
')
}
cat('Loop completed without error
')

Passos negativos com seq()

Definir um valor negativo para by cria uma sequência decrescente. O valor de from deve ser maior que o de to ao usar um passo negativo; caso contrário, R retornará um aviso.

# Countdown from 100 to 0
countdown_100 <- seq(100, 0, by = -10)
cat('Countdown:', countdown_100, '
')

# Temperature drop simulation
start_temp <- 30.0
end_temp <- 15.0
hourly_temps <- seq(start_temp, end_temp, by = -1.5)
cat('Hourly cooling:', hourly_temps, '
')

Sequências de ponto flutuante

Tenha cuidado com passos de ponto flutuante: pequenos erros de arredondamento podem fazer com que o último valor seja incluído ou excluído inesperadamente. Usar length.out em vez de by evita esse problema.

# Floating point step: may include or exclude endpoint
seq_by <- seq(0, 1, by = 0.1)
cat('By 0.1 (', length(seq_by), 'values):', seq_by, '
')

# length.out: always exactly n values
seq_lo <- seq(0, 1, length.out = 11)
cat('length.out=11:', seq_lo, '
')

# Check: are they the same?
cat('Identical?', identical(seq_by, seq_lo), '
')

Usando seq() para eixos de gráficos

Um uso comum de seq() é gerar valores para funções matemáticas ou marcas de escala dos eixos. Essa função permite amostrar uma função em um intervalo, em intervalos regulares.

# Sample a sine wave
x_vals <- seq(0, 2 * pi, length.out = 13)
y_vals <- round(sin(x_vals), 3)
cat('x values (radians):', round(x_vals, 2), '
')
cat('sin(x) values:      ', y_vals, '
')

# Find the approximate peak
cat('Peak near x =', round(x_vals[which.max(y_vals)], 3), '
')

Comparação entre seq() e :

Use : quando quiser números inteiros com passo 1. Use seq() quando precisar de passos decimais, de uma quantidade específica de valores ou de corresponder ao comprimento de outro vetor. As duas opções podem produzir resultados idênticos para intervalos simples de números inteiros.

# These produce the same integer sequence
a <- 1:5
b <- seq(1, 5)
c_seq <- seq(1, 5, by = 1)
d <- seq(1, 5, length.out = 5)

cat('1:5            :', a, '
')
cat('seq(1,5)       :', b, '
')
cat('seq(1,5,by=1)  :', c_seq, '
')
cat('seq(1,5,lo=5)  :', d, '
')
cat('All identical? :', identical(a, d), '
')

Prática: gerando pontos no tempo

seq() é ideal para criar eixos temporais na análise de dados — por exemplo, para gerar intervalos mensais, trimestrais ou anuais ao trabalhar com séries temporais.

# Monthly data points (as numeric month indices)
months_idx <- seq(1, 12, by = 1)
month_names <- month.abb  # built-in R constant
cat('Month indices:', months_idx, '
')
cat('Month names  :', month_names, '
')

# Quarterly: every 3 months
quarters <- seq(1, 12, by = 3)
cat('Quarter starts:', quarters, '
')
cat('Quarter names :', month_names[quarters], '
')

Resumo dos argumentos de seq()

Aqui está uma referência rápida dos argumentos de seq():

  • from — valor inicial (padrão: 1)
  • to — valor final (padrão: 1)
  • by — tamanho do passo entre os valores
  • length.out — quantidade exata de valores a gerar
  • along.with — corresponde ao comprimento de outro vetor

Você deve fornecer apenas um entre by e length.out.

# Five different forms of seq()
cat('seq(5)               :', seq(5), '
')
cat('seq(2, 10)           :', seq(2, 10), '
')
cat('seq(0, 1, by=0.25)   :', seq(0, 1, by = 0.25), '
')
cat('seq(0, 1, length.out=5):', seq(0, 1, length.out = 5), '
')
cat('seq(along.with=1:4)  :', seq(along.with = 1:4), '
')

Verificação rápida

Quantos valores seq(0, 1, length.out = 6) produz?

Recapitulação: seq() para sequências personalizadas

Excelente trabalho! Veja os principais aprendizados desta lição:

  • seq(from, to, by) — cria uma sequência com tamanho de passo fixo
  • seq(from, to, length.out = n) — cria exatamente n valores igualmente espaçados
  • seq(along.with = x) — gera índices que correspondem ao vetor x
  • seq_len(n) — versão segura de 1:n (trata n=0)
  • Prefira length.out a by em sequências de ponto flutuante para evitar problemas de arredondamento
  • Use seq() quando : não for suficiente (passos não inteiros ou quantidade fixa)
# Final demo: all seq() forms
cat('Even 0-10:    ', seq(0, 10, by = 2), '
')
cat('5 in [0,1]:   ', seq(0, 1, length.out = 5), '
')
cat('Match 3-elem: ', seq(along.with = c('a', 'b', 'c')), '
')
cat('Safe 1:0:     ', seq_len(0), '(empty)
')

Perguntas Frequentes

A aula “seq() para sequências personalizadas” é grátis?

Sim — o texto completo de “seq() para sequências personalizadas” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de R Academy, atualize para CoddyKit PRO. O curso de R Academy inclui 4 aulas no total.

O que vou aprender em “seq() para sequências personalizadas”?

Controle o tamanho do passo, o comprimento e a direção com seq(). Você pratica R Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar R Academy?

Nenhuma experiência prévia é necessária. R Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “seq() para sequências personalizadas”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de R Academy?

Sim. Cada aula de R Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. O operador de dois-pontos para intervalos de inteiros
  2. seq() para sequências personalizadas
  3. rep() para valores repetidos
  4. Vetores e sequências nomeados
← Voltar para R Academy