tablas studio inner funcion datos cruzar cruzadas buscarv bases r merge

studio - Left join solo las columnas seleccionadas en R con la función merge()



tablas cruzadas en r (3)

Creo que es un poco más simple usar las funciones dplyr select y left_join ; al menos es más fácil de entender para mí. La función de dplyr de dplyr está hecha para imitar argumentos sql.

library(tidyverse) DF2 <- DF2 %<% select(client, LO) joined_data <- left_join(DF1, DF2, by = "Client")

En realidad, no necesita usar el argumento "por" en este caso porque las columnas tienen el mismo nombre.

Estoy intentando IZQUIERDA Unir 2 marcos de datos, pero no quiero unir todas las variables del segundo conjunto de datos:

Como ejemplo, tengo el conjunto de datos 1 (DF1):

Cl Q Sales Date A 2 30 01/01/2014 A 3 24 02/01/2014 A 1 10 03/01/2014 B 4 10 01/01/2014 B 1 20 02/01/2014 B 3 30 03/01/2014

Y me gustaría unirme al conjunto de datos 2 (DF2):

Client LO CON A 12 CA B 11 US C 12 UK D 10 CA E 15 AUS F 91 DD

Puedo unirme con el siguiente código:

merge (x = DF1, y = DF2, by = "Cliente", all.x = TRUE):

Client Q Sales Date LO CON A 2 30 01/01/2014 12 CA A 3 24 02/01/2014 12 CA A 1 10 03/01/2014 12 CA B 4 10 01/01/2014 11 US B 1 20 02/01/2014 11 US B 3 30 03/01/2014 11 US

Sin embargo, combina las columnas LO y CON. Solo me gustaría fusionar la columna LO.

Client Q Sales Date LO A 2 30 01/01/2014 12 A 3 24 02/01/2014 12 A 1 10 03/01/2014 12 B 4 10 01/01/2014 11 B 1 20 02/01/2014 11 B 3 30 03/01/2014 11


Nada elegante, pero esta podría ser otra respuesta satisfactoria.

merge(x = DF1, y = DF2, by = "Client", all.x=TRUE)[,c("Client","LO","CON")]

Esto será útil especialmente cuando no necesite las claves que se usaron para unir las tablas en sus resultados.


Puede hacerlo subconjuntando los datos que pasa a su fusión:

merge(x = DF1, y = DF2[ , c("Client", "LO")], by = "Client", all.x=TRUE)

O simplemente puede eliminar la columna después de su combinación actual :)