R Academy · Lección

Vectores y secuencias con nombre

Asigne y acceda a nombres en vectores para escribir código más legible.

Lección 4 de 413 pasos

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 mediante names(x) <- c(...)
  • Acceda por nombre con x['name'] (conserva el nombre) o x[['name']] (solo el valor)
  • setNames(x, nm) devuelve una copia con nombres sin modificar el original
  • unname(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 mediante names(x) <- ...
  • x['name'] devuelve un subconjunto con nombre; x[['name']] devuelve solo el valor
  • setNames() 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)], '
')
Gratis para empezar

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

  1. El operador dos puntos para rangos de enteros
  2. seq() para secuencias personalizadas
  3. rep() para repetir valores
  4. Vectores y secuencias con nombre
← Volver a R Academy