Ir al contenido principal

Combinación de conjuntos de datos en R

En este tutorial, aprenderás a unir varios conjuntos de datos en R.
Actualizado 17 sept 2026  · 8 min leer

Explorar con IA

ChatGPTClaudePerplexity

En la práctica, los datos suelen estar alojados en diferentes servidores y repartidos en muchos archivos. Cuando la información que necesitas proviene de varias fuentes, es fundamental saber cómo agruparla para perder la menor cantidad posible de datos y hacer emparejamientos que tengan sentido según la estructura de tu dataset.

En este tutorial verás:

  • Cómo combinar conjuntos de datos en horizontal y en vertical
  • Qué son las claves primarias y cómo aportan estructura a tus datos
  • Tipos de joins (p. ej., left join, inner join, full join) y cómo elegir entre ellos
  • Un problema habitual al que prestar atención y cómo resolverlo

Concatenar conjuntos de datos

A alto nivel, hay dos formas de combinar datasets: puedes añadir información incorporando más filas o añadiendo más columnas. En general, cuando tienes conjuntos de datos con el mismo conjunto de columnas o con el mismo conjunto de observaciones, puedes concatenarlos vertical u horizontalmente, respectivamente. Vamos a verlo con ejemplos.

Añadir conjuntos de datos en vertical

Cuando tienes varios datasets con el mismo conjunto de columnas, puedes concatenar uno con otro en vertical. Es decir, manteniendo las columnas de tu dataset, puedes añadir más filas. Reunir esta información en un solo archivo te facilitará el análisis y te permitirá tener una visión global sin tener que ir saltando entre varios archivos y perderles la pista.

Dataset 1

Make Num models
Honda 63
BMW 10

Dataset 2

Make Num models
Ford 26
Tesla 4

Ten en cuenta que si tienes la misma observación en varios datasets y los concatenas en vertical con rbind(), acabarás con observaciones duplicadas en tu tabla. Y aunque los dos datasets deben tener el mismo conjunto de variables (es decir, columnas), no es necesario que estén en el mismo orden. Compruébalo en la consola de abajo.

En tu espacio de trabajo hay dos datasets llamados dataset1 y dataset2 como los de arriba. Prueba a reordenar las columnas de dataset1. Llama a rbind() con dataset1 y dataset2, así como con reordered_dataset1 y dataset2.

dataset1 <- data.frame(make = c("Honda", "BMW"), num_models = c(63, 10)) dataset2 <- data.frame(make = c("Ford", "Tesla"), num_models = c(26, 4)) # Añadir datasets en vertical rbind(dataset1, dataset2) # Reordenar columnas reordered_dataset1 <- dataset1[, c(2, 1)] # Ver que rbind() es robusto al orden de columnas rbind(reordered_dataset1, dataset2)

Tras rbind(), tus resultados deberían incluir información de las cuatro marcas de coches en una sola tabla como esta:

Dataset concatenado en vertical

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Empieza a aprender R gratis

Introducción a R

BasicSkill Level
4 h
3.1M learners
Domina los fundamentos del análisis de datos en R, como vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
See DetailsRight Arrow
Start Course

Añadir conjuntos de datos en horizontal

Cuando tienes datasets que representan el mismo conjunto de observaciones, puedes concatenarlos en horizontal. Esta vez, manteniendo las filas de tu dataset, puedes añadir más columnas. En estos casos, debes comprobar que el orden de las observaciones sea el mismo. Si tus datasets tienen un número de filas diferente, o el mismo número pero en distinto orden, puedes emparejar columnas de manera incoherente.

Extendamos el ejemplo anterior. Supón que tienes dos archivos: uno con la marca del coche y el número de modelos únicos ofrecidos, y otro con la marca y las ventas totales:

Número de modelos únicos ofrecidos

Make Num models
Honda 63
BMW 10
Ford 26
Tesla 4

Ventas totales

Make Sales
Ford 119157
BMW 25908
Honda 188328
Tesla 29975

Es importante recordar que si tienes la misma observación en varios datasets y los concatenas en horizontal con cbind(), terminarás con columnas redundantes en tu tabla. Y aunque los dos datasets contengan información relacionada, ¡el orden de las filas importa!

En la consola de abajo, llama a cbind() con models y sales e imprime el resultado:

models <- data.frame(make = c("Honda", "BMW", "Ford", "Tesla"), num_models = c(63, 10, 26, 4)) sales <- data.frame(make = c("Ford", "BMW", "Honda", "Tesla"), sales = c(119157, 25908, 188328, 29975)) # Añadir datasets en horizontal cbind(models, sales)

Deberías obtener algo como esto:

Models & Sales

Make Num models Make Sales
Honda 63 Ford 119157
BMW 10 BMW 25908
Ford 26 Honda 188328
Tesla 4 Tesla 29975

¿Ves el problema? ¡Estos datos no están en formato tidy!

Según los principios de datos ordenados explicados en este curso fundamental, cada observación de un dataset debe representarse en una fila única. ¿Y si solo tuvieras información para algunas filas en uno de los datasets y quisieras añadir columnas solo para esas? Dicho de otro modo, ¿y si quisieras añadir más columnas de un dataset a otro, pero no tienen el mismo número de observaciones?

Clave primaria y claves externas

El primer paso para combinar datasets es identificar la clave primaria. La clave primaria es la columna o conjunto de columnas que identifica de forma única cada observación. En el ejemplo de las marcas, el número de modelos únicos ofrecidos y las ventas totales, la clave primaria es la columna make.

Ahora podemos realizar joins, la forma estándar de fusionar datasets en una sola tabla.

Tipos de joins

Existen muchos tipos de joins. Puedes aprender a ampliar columnas de un dataset con columnas de otro mediante joins de mutación, a filtrar un dataset en función de otro con joins de filtrado y a operar con conjuntos en el curso Joining Data in R with dplyr. A continuación, algunos de los más comunes.

left_join(x, y): devuelve todas las filas de x y todas las columnas de x y y. Las filas de x sin coincidencia en y tendrán valores NA en las nuevas columnas. Si hay múltiples coincidencias entre x y y, se devuelven todas las combinaciones.

inner_join(x, y): devuelve todas las filas de x que tienen valores coincidentes en y, y todas las columnas de x y y. Si hay múltiples coincidencias entre x y y, se devuelven todas las combinaciones.

full_join(x, y): devuelve todas las filas y todas las columnas de x y y. Cuando no hay coincidencia, la función devuelve NA para la que falte.

Los joins anteriores son ejemplos de joins de mutación, ya que combinan variables de dos datasets.

Claves ausentes

Supón que tienes dos datasets. El primero se llama size y contiene nombres de personas y su talla de camiseta:

 > size
name size
1  Tom    M
2  Dan   XL
3 Keil    S

El segundo se llama color y contiene los apellidos, las preferencias de color de camiseta y almacena parte de la información en el atributo row.names:

 > color
     surname color
Tom     Jeon  <NA>
Dan    Smith  Dark
Bob McLadden Light

¿Ves qué puede salir mal? Los joins entre dos tablas pueden complicarse cuando hay claves ausentes o duplicadas. En este ejemplo, los data frames de R almacenan información importante en el atributo row.names. Cuando esto ocurre, no podrás acceder a la clave con una función de join, ya que estas solo acceden a las columnas del data frame.

El truco para solucionar esto fácilmente es usar la función rownames_to_column() del paquete tibble. Devuelve una copia de tu dataset con los nombres de fila añadidos como columna. El primer argumento de rownames_to_column() es tu data frame y el segundo es una cadena con el nombre de la columna que quieres añadir.

Prueba a explorar en la consola de abajo. Los datasets size y color ya están cargados en tu espacio de trabajo.

color <- data.frame(surname = c("Jeon", "Smith", "McLadden"), color = c(NA, "Dark", "Light")) row.names(color) <- c("Tom", "Dan", "Bob") size <- data.frame(name = c("Tom", "Dan", "Keil"), size = c("M", "XL", "S")) # ¡Explora aquí!

Reflexiones finales

En el mundo real, los datos pueden estar repartidos en muchos datasets y en múltiples formatos. Como R está pensado para trabajar con tablas únicas, manipular y combinar datasets en una sola tabla es una habilidad esencial. Completa el itinerario de habilidades Importing & Cleaning Data with R y aprende a analizar y combinar datos en cualquier formato. Échale un vistazo también al tutorial de DataCamp R Data Import. ¡Feliz aprendizaje!

Temas
R
Ciencia de datos
Análisis de datos

Más sobre R

Curso

Introducción a R

4 h
3.1M
Domina los fundamentos del análisis de datos en R, como vectores, listas y marcos de datos, y practica R con conjuntos de datos reales.
Ver detallesRight Arrow
Iniciar Curso
Ver másRight Arrow
Relacionado

Tutorial

Tutorial de Subconjuntos en R

Descubre cómo acceder a los datos de tu marco de datos con el subconjunto. Aprende a hacer subconjuntos utilizando paréntesis o la función subconjunto() de R.
DataCamp Team's photo

DataCamp Team

4 min

Tutorial

Tutorial de tablas de contingencia en R

En este tutorial, aprenderás a crear tablas de contingencia y a probar y cuantificar las relaciones visibles en ellas.
Łukasz Deryło's photo

Łukasz Deryło

10 min

Tutorial

Tutorial de unión de DataFrames en pandas

En este tutorial, usted aprenderá varias maneras en las que múltiples DataFrames pueden ser fusionados en python usando la librería Pandas.
DataCamp Team's photo

DataCamp Team

13 min

Tutorial

Tutorial sobre cómo importar datos a R

Averigua cómo importar datos a R, incluidos archivos CSV, JSON, Excel, HTML, bases de datos, SAS, SPSS, Matlab y otros, utilizando los conocidos paquetes de R.
Abid Ali Awan's photo

Abid Ali Awan

10 min

Tutorial

Tutorial de regresión lineal en R

En este tutorial aprenderás los fundamentos de un modelo estadístico muy popular: la regresión lineal.

Eladio Montero Porras

15 min

multiple linear regression

Tutorial

Regresión lineal múltiple en R: tutorial con ejemplos

Una visión completa para entender las regresiones lineales múltiples en R a través de ejemplos.
Zoumana Keita 's photo

Zoumana Keita

12 min

Ver MásVer Más