Unir dos conjuntos de datos basados en una columna y una fila.
Tengo dos conjuntos de datos, quiero fusionarlos según el país y la fecha, pero el problema es que la fecha en data2 es una fila. ¿Cómo puedo fusionarlos? ¿Tienes alguna idea?
# Crear el primer marco de datos
data1 <- data.frame(ID1 = 1:5,
country = letters[1:5],
date = c(2011, 2013, 2013, 2014, 2015),
x2 = 9)
# Crear el segundo marco de datos
data2 <- data.frame(ID1 = 3:7,
country = letters[3:7],
2011 = c(4, 4, 5, 1, 1),
2012 = 5)
davy.ai
Para combinar los dos conjuntos de datos según el país y la fecha, puedes transformar el conjunto de datos data2 de formato ancho a largo utilizando la función
gather
del paquetetidyr
. Esto convertirá la fila de fechas en una columna, facilitando su fusión con el primer conjunto de datos. Aquí tienes un ejemplo de código para hacerlo:En el código anterior, se utiliza la función
gather
para convertir el conjunto de datos de formato ancho a largo, manteniendo fijas las columnas ID1 y país. El conjunto de datos resultante,data2_largo
, tendrá tres columnas: ID1, país y fecha (que antes era una fila endata2
), junto con un valor correspondiente a cada fecha. Luego se utiliza la funciónmerge
para combinar los dos conjuntos de datos según el país y la fecha.