Vectores y secuencias con nombre
Asigne y acceda a nombres en vectores para escribir código más legible.
Vectores y secuencias con nombre es una lección gratuita de R Academy en CoddyKit. Esta es la lección 4 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 los vectores con nombres
Un vector con nombres es un vector en el que cada elemento tiene un nombre asociado (una etiqueta de caracteres). Los nombres hacen que el código sea más legible y permiten acceder a los elementos por nombre en lugar de usar el índice de posición.
# A plain vector vs a named vector
plain <- c(78, 92, 85, 67)
named <- c(Alice = 78, Bob = 92, Carol = 85, Dave = 67)
cat('Plain vector:', plain, '
')
cat('Named vector:
')
print(named)Crear vectores con nombres mediante c()
La forma más sencilla de crear un vector con nombres es usar pares name = value dentro de c(). Los nombres pueden ser cualquier cadena válida; si contienen espacios o caracteres especiales, escríbalos entre comillas invertidas o comillas.
# GDP in trillions USD
gdp <- c(USA = 27.4, China = 18.0, Germany = 4.1,
Japan = 4.2, UK = 3.1)
cat('GDP values:
')
print(gdp)
cat('Names:', names(gdp), '
')
cat('Values:', unname(gdp), '
')La función names()
names(x) obtiene los nombres de un vector como un vector de caracteres. También puede asignar nombres después de crearlo mediante names(x) <- c(...), lo que modifica el vector directamente.
# Assign names after creation
temps <- c(22.1, 18.5, 25.3, 20.0)
cat('Before naming:', temps, '
')
names(temps) <- c('Mon', 'Tue', 'Wed', 'Thu')
cat('After naming:
')
print(temps)
# Retrieve names
cat('Days:', names(temps), '
')Acceder a elementos por nombre
Acceda a los elementos de un vector con nombres mediante x["name"] o x[["name"]]. El corchete simple [] devuelve un subconjunto con nombre; [[]] devuelve solo el valor, sin el nombre.
scores <- c(Math = 88, Science = 92, English = 75, History = 81)
# Single bracket: keeps name
cat('Math score (with name):
')
print(scores['Math'])
# Double bracket: just the value
cat('Science score (value only):', scores[['Science']], '
')
# Multiple names
cat('STEM subjects:
')
print(scores[c('Math', 'Science')])setNames() para un estilo funcional
setNames(x, nm) devuelve una copia de x con los nombres establecidos en nm, sin modificar el original. Esto resulta útil en canalizaciones en las que desea asignar nombres a un vector como parte de una cadena de operaciones.
# setNames returns a named copy (does not modify original)
raw_values <- c(0.85, 0.72, 0.91, 0.68)
metrics <- setNames(raw_values, c('Precision', 'Recall', 'F1', 'Accuracy'))
cat('Original (unchanged):', raw_values, '
')
cat('Named metrics:
')
print(metrics)
# Best metric
best_name <- names(which.max(metrics))
cat('Best metric:', best_name, '=', metrics[best_name], '
')Modificar nombres
Puede cambiar nombres individuales indexando names(x). Esto resulta útil cuando necesita cambiar el nombre de un subconjunto de elementos sin volver a crear todo el vector.
prices <- c(apple = 1.20, bannana = 0.80, cherry = 3.50) # typo!
# Fix a single name
names(prices)[2] <- 'banana'
cat('Fixed names:
')
print(prices)
# Rename all
names(prices) <- c('Apple', 'Banana', 'Cherry') # capitalise
cat('Capitalised:
')
print(prices)Secuencias con nombres mediante seq() y names()
Puede crear una secuencia con nombres combinando seq() con setNames(). Esto resulta especialmente útil para índices mensuales o semanales, en los que los nombres aportan contexto a los valores numéricos.
# Monthly average temperature with names
temps_monthly <- setNames(
c(3.1, 4.2, 8.5, 13.0, 17.2, 21.0, 23.5, 23.0, 19.0, 13.5, 7.8, 4.0),
month.abb
)
cat('Monthly temps:
')
print(temps_monthly)
cat('Summer avg:', mean(temps_monthly[c('Jun', 'Jul', 'Aug')]), '
')Filtrar vectores con nombres
Los vectores con nombres admiten índices lógicos y de caracteres. Puede seleccionar elementos por nombre y filtrarlos por valor al mismo tiempo, lo que hace que estos vectores sean muy expresivos para pequeñas tablas de consulta.
population <- c(Tokyo = 37.4, Delhi = 32.9, Shanghai = 28.5,
Dhaka = 22.5, Cairo = 21.3, Mumbai = 20.7)
# Select cities with population > 25 million
big_cities <- population[population > 25]
cat('Cities over 25M:
')
print(big_cities)
# Sort descending by population
cat('Ranked:
')
print(sort(population, decreasing = TRUE))Eliminar nombres con unname()
unname(x) elimina todos los nombres de un vector y devuelve únicamente los valores. Esto resulta útil al pasar datos a funciones que no esperan vectores con nombres o cuando los nombres añaden ruido visual a la salida.
named_vec <- c(x1 = 10, x2 = 20, x3 = 30, x4 = 40)
cat('Named:
')
print(named_vec)
unnamed_vec <- unname(named_vec)
cat('Unnamed:
')
print(unnamed_vec)
# Check
cat('Has names after unname:', !is.null(names(unnamed_vec)), '
')Vectores con nombres como tablas de consulta
Uno de los usos más potentes de los vectores con nombres es utilizarlos como una tabla de consulta: asignar valores a partir de claves. En lugar de una cadena de instrucciones if-else, use un vector con nombres e indexe en él.
# Map month abbreviation to number of days
days_in_month <- c(Jan=31, Feb=28, Mar=31, Apr=30, May=31,
Jun=30, Jul=31, Aug=31, Sep=30, Oct=31,
Nov=30, Dec=31)
# Look up specific months
query <- c('Mar', 'Jul', 'Nov')
cat('Days in', query[1], ':', days_in_month[query[1]], '
')
cat('Days in', query[2], ':', days_in_month[query[2]], '
')
cat('Days in', query[3], ':', days_in_month[query[3]], '
')Vectores con nombres: conceptos clave
Resumen de las características de los vectores con nombres en R:
- Créelos con
c(name = value, ...)o asígnelos mediantenames(x) <- c(...) - Acceda por nombre con
x['name'](conserva el nombre) ox[['name']](solo el valor) setNames(x, nm)devuelve una copia con nombres sin modificar el originalunname(x)elimina todos los nombres- Los vectores con nombres funcionan como elegantes tablas de consulta (sustituyen las cadenas de if-else)
# Complete workflow
rates <- c(USD = 1.0, EUR = 0.92, GBP = 0.79, JPY = 149.5)
# Convert 100 USD to each currency
amount_usd <- 100
converted <- amount_usd * rates
cat('100 USD in other currencies:
')
print(round(converted, 2))Comprobación rápida
¿Cuál es la diferencia entre x['key'] y x[['key']] cuando x es un vector con nombres?
Recapitulación: vectores con nombres
¡Excelente trabajo! Estas son las ideas clave de la lección:
- Los vectores con nombres asocian cada elemento con una etiqueta de caracteres
- Créelos con la sintaxis
c(name = val)o asígnelos mediantenames(x) <- ... x['name']devuelve un subconjunto con nombre;x[['name']]devuelve solo el valorsetNames()es la forma funcional (sin modificar el vector) de adjuntar nombres- Use vectores con nombres como tablas de consulta para sustituir cadenas de if-else demasiado extensas
unname()elimina los nombres cuando se necesitan los valores sin formato
# Named vector as grade lookup
grade_map <- c('90'='A', '80'='B', '70'='C', '60'='D')
student_score <- 80
# Find grade bracket
brackets <- c(90, 80, 70, 60)
threshold <- max(brackets[brackets <= student_score])
cat('Score:', student_score, '-> Grade:', grade_map[as.character(threshold)], '
')Aprende R con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 43
- Lecciones
- 159
Preguntas frecuentes
¿La lección «Vectores y secuencias con nombre» es gratis?
Sí — el texto completo de «Vectores y secuencias con nombre» 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 «Vectores y secuencias con nombre»?
Asigne y acceda a nombres en vectores para escribir código más legible. 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 4 de 4.
¿Cuánto tiempo toma la lección «Vectores y secuencias con nombre»?
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