0Pricing
R Academy · Aula

rep() para valores repetidos

Repita valores e vetores com rep(), times e os argumentos each.

rep() para valores repetidos é uma aula grátis de R Academy no CoddyKit. Esta é a aula 3 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 rep()

rep() é abreviação de replicate. Essa função repete valores ou vetores uma quantidade especificada de vezes. É uma das ferramentas mais úteis para criar dados de teste estruturados, conjuntos de dados equilibrados e preencher vetores com valores padrão.

# Repeat a single value
zeros <- rep(0, times = 5)
cat('Five zeros:', zeros, '
')

# Repeat a string
status <- rep('active', times = 4)
cat('Status:', status, '
')

rep(x, times) — repetindo o vetor inteiro

Quando x é um vetor e times é um único número inteiro, rep() repete o vetor inteiro essa quantidade de vezes. O comprimento da saída é length(x) * times.

# Repeat a vector 3 times
weekend <- c('Saturday', 'Sunday')
four_weekends <- rep(weekend, times = 4)
cat('4 weekends:', four_weekends, '
')

# Repeat numeric vector
pattern <- c(1, 2, 3)
cat('Pattern x3:', rep(pattern, times = 3), '
')

rep(x, each) — repetindo cada elemento

O argumento each repete cada elemento individual antes de passar ao próximo. Essa é a principal diferença em relação a times: each repete os elementos em suas próprias posições.

groups <- c('A', 'B', 'C')

# times: repeats whole vector
cat('times=3:', rep(groups, times = 3), '
')
# A B C A B C A B C

# each: repeats each element before next
cat('each=3 :', rep(groups, each = 3), '
')
# A A A B B B C C C

rep(x, times = c(...)) — repetições variáveis

Quando times é um vetor com o mesmo comprimento de x, cada elemento de x é repetido a quantidade de vezes correspondente. Isso oferece um controle detalhado sobre a repetição.

# Different number of repeats per element
fruits <- c('apple', 'banana', 'cherry')
counts <- c(3, 1, 2)

fruit_basket <- rep(fruits, times = counts)
cat('Fruit basket:', fruit_basket, '
')
# apple apple apple banana cherry cherry

# Useful for creating category labels
cat('Length:', length(fruit_basket), '
')

rep_len() — repetindo até um comprimento fixo

rep_len(x, length.out) repete o vetor x até que o resultado alcance exatamente length.out elementos. A repetição é cíclica — ela volta ao início do vetor conforme necessário.

# Cycle through seasons to fill 12 months
seasons <- c('Spring', 'Summer', 'Autumn', 'Winter')
year_seasons <- rep_len(seasons, length.out = 12)
cat('12 months by season:', year_seasons, '
')

# Cycle through 1, 2, 3 for 10 items
rotation <- rep_len(1:3, length.out = 10)
cat('Rotation:', rotation, '
')

Combinando times e each

Você pode usar times e each juntos para criar padrões de repetição mais complexos. R aplica each primeiro (expandindo cada elemento) e depois repete o vetor resultante times vezes.

# each=2 then times=3
vals <- c(1, 2)
result <- rep(vals, each = 2, times = 3)
cat('each=2, times=3:', result, '
')
# 1 1 2 2  repeated 3 times: 1 1 2 2 1 1 2 2 1 1 2 2

cat('Length:', length(result), '
')

Criando rótulos equilibrados para grupos

Um uso clássico de rep() é criar rótulos equilibrados para grupos em experimentos — quando você quer o mesmo número de observações em cada grupo.

# 5 subjects per treatment group
treatments <- c('Control', 'LowDose', 'HighDose')
n_per_group <- 5

group_labels <- rep(treatments, each = n_per_group)
cat('Group labels:', group_labels, '
')
cat('Total subjects:', length(group_labels), '
')

# Count per group
for (g in treatments) {
  cat(g, ':', sum(group_labels == g), '
')
}

Repetindo valores lógicos

rep() funciona com qualquer tipo de dado, inclusive valores lógicos. Isso é útil para criar máscaras, sinalizadores ou padrões alternados de TRUE/FALSE.

# Alternating TRUE/FALSE pattern
alternate <- rep(c(TRUE, FALSE), times = 5)
cat('Alternating mask:', alternate, '
')

# Apply mask to select every other element
data_vals <- 10:19
cat('Every other value:', data_vals[alternate], '
')

# Create a block pattern: 3 TRUE then 3 FALSE
block <- rep(c(TRUE, FALSE), each = 3)
cat('Block pattern:', block, '
')

rep() para preencher matrizes

Você pode usar rep() para preencher rapidamente matrizes com dados padronizados. Como matrix() aceita um vetor como entrada, combiná-la com rep() facilita a criação de matrizes com padrões.

# Fill a 3x4 matrix with a repeating pattern
pattern <- rep(c(1, 0), times = 6)
checker <- matrix(pattern, nrow = 3, ncol = 4)
cat('Checkerboard-like matrix:
')
print(checker)

# Fill diagonal-like with rep
fill <- rep(1:4, each = 3)
cat('Repeated fill:', fill, '
')

Expandindo uma tabela-resumo

Um uso prático de rep() com times variável é converter uma tabela de frequências novamente em um vetor de dados brutos. Se você souber quantas vezes cada valor ocorreu, rep() reconstrói as observações.

# Summary: grade frequencies
grades <- c('A', 'B', 'C', 'D')
frequencies <- c(5, 12, 8, 3)

# Reconstruct raw grade vector
raw_grades <- rep(grades, times = frequencies)
cat('Raw grades (', length(raw_grades), 'students):', raw_grades, '
')

# Verify frequency table
cat('Freq table:
')
print(table(raw_grades))

Resumo de rep()

Aqui está uma referência rápida de rep():

  • rep(x, times = n) — repete x inteiro n vezes
  • rep(x, each = n) — repete cada elemento n vezes
  • rep(x, times = c(...)) — repetições variáveis por elemento
  • rep_len(x, n) — repete x ciclicamente até alcançar exatamente n elementos
  • Funciona com qualquer tipo: numérico, caractere, lógico e fator
x <- c(10, 20, 30)
cat('times=2  :', rep(x, times = 2), '
')
cat('each=2   :', rep(x, each = 2), '
')
cat('var times:', rep(x, times = c(1, 2, 3)), '
')
cat('rep_len  :', rep_len(x, 7), '
')

Verificação rápida

O que rep(c(1, 2), each = 3) produz?

Recapitulação: rep() para repetir valores

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

  • rep(x, times) repete o vetor inteiro; rep(x, each) repete cada elemento individualmente
  • Passar um vetor para times fornece quantidades de repetição variáveis por elemento
  • rep_len(x, n) repete x ciclicamente até produzir exatamente n elementos
  • Usos comuns: rótulos equilibrados de grupos, máscaras, expansão de tabelas de frequências e matrizes com padrões
  • Funciona da mesma forma com dados numéricos, de caracteres e lógicos
# Create a balanced experiment design
treatments <- c('Placebo', 'Drug_A', 'Drug_B')
subjects_per <- 4

design <- rep(treatments, each = subjects_per)
cat('Experiment design:
')
cat(design, '
')
cat('Total N:', length(design), '
')

Perguntas Frequentes

A aula “rep() para valores repetidos” é grátis?

Sim — o texto completo de “rep() para valores repetidos” é 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 “rep() para valores repetidos”?

Repita valores e vetores com rep(), times e os argumentos each. 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 3 de 4.

Quanto tempo leva a aula “rep() para valores repetidos”?

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