rep() para repetir valores
Repita valores y vectores con rep(), y con los argumentos times y each.
rep() para repetir valores es una lección gratuita de R Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de R Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de R Academy incluye 4 lecciones en total.
Introducción a rep()
rep() es la abreviatura de replicate. Repite valores o vectores una cantidad de veces especificada. Es una de las herramientas más útiles para crear datos de prueba estructurados, conjuntos de datos equilibrados y vectores rellenados con valores predeterminados.
# 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) — repetir el vector completo
Cuando x es un vector y times es un solo entero, rep() repite el vector completo esa cantidad de veces. La longitud del resultado es 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) — repetir cada elemento
El argumento each repite cada elemento individual antes de pasar al siguiente. Esta es la diferencia clave con times: each repite los elementos en su posición.
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(...)) — repeticiones variables
Cuando times es un vector con la misma longitud que x, cada elemento de x se repite la cantidad de veces correspondiente. Esto ofrece un control preciso sobre la repetición.
# 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() — repetir hasta una longitud fija
rep_len(x, length.out) repite el vector x hasta que el resultado alcanza exactamente length.out elementos. La repetición es cíclica: recorre nuevamente el vector según sea necesario.
# 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, '
')Combinar times y each
Puede usar times y each juntos para crear patrones de repetición más complejos. R aplica primero each (expande cada elemento) y después repite el vector resultante times veces.
# 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), '
')Crear etiquetas de grupos equilibrados
Un uso clásico de rep() es crear etiquetas de grupos equilibrados para experimentos, cuando desea tener la misma cantidad de observaciones en 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), '
')
}Repetir valores lógicos
rep() funciona con cualquier tipo de datos, incluidos los valores lógicos. Esto resulta útil para crear máscaras, indicadores o patrones alternos 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 rellenar matrices
Puede usar rep() para rellenar rápidamente matrices con datos que sigan un patrón. Como matrix() acepta un vector como entrada, combinarlo con rep() facilita la creación de matrices con patrones.
# 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, '
')Expandir una tabla de resumen
Un uso práctico de rep() con times variable es convertir una tabla de frecuencias nuevamente en un vector de datos sin procesar. Si sabe cuántas veces apareció cada valor, rep() reconstruye las observaciones.
# 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))Resumen de rep()
Esta es una referencia rápida de rep():
rep(x, times = n)— repite x completo n vecesrep(x, each = n)— repite cada elemento n vecesrep(x, times = c(...))— repeticiones variables por elementorep_len(x, n)— repite cíclicamente x hasta alcanzar exactamente n elementos- Funciona con cualquier tipo: numérico, carácter, lógico y factor
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), '
')Comprobación rápida
¿Qué produce rep(c(1, 2), each = 3)?
Recapitulación: rep() para repetir valores
¡Excelente! Estas son las ideas clave de la lección:
rep(x, times)repite el vector completo;rep(x, each)repite cada elemento individualmente- Pasar un vector a
timesproporciona cantidades de repetición variables para cada elemento rep_len(x, n)repite cíclicamente x hasta producir exactamente n elementos- Usos habituales: etiquetas de grupos equilibrados, máscaras, expansión de tablas de frecuencias y matrices con patrones
- Funciona de la misma manera con datos numéricos, de caracteres y 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), '
')Preguntas frecuentes
¿La lección «rep() para repetir valores» es gratis?
Sí — el texto completo de «rep() para repetir valores» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de R Academy, actualiza a CoddyKit PRO. El curso de R Academy incluye 4 lecciones en total.
¿Qué aprenderé en «rep() para repetir valores»?
Repita valores y vectores con rep(), y con los argumentos times y each. Practicas R Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar R Academy?
No se requiere experiencia previa. R Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «rep() para repetir valores»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de R Academy?
Sí. Cada lección de R Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- El operador dos puntos para rangos de enteros
- seq() para secuencias personalizadas
- rep() para repetir valores
- Vectores y secuencias con nombre