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 Crep(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 vezesrep(x, each = n)— repete cada elemento n vezesrep(x, times = c(...))— repetições variáveis por elementorep_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
timesfornece 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
- O operador de dois-pontos para intervalos de inteiros
- seq() para sequências personalizadas
- rep() para valores repetidos
- Vetores e sequências nomeados