Je sais que je peux utiliser la variable plyr
et ses amis pour combiner des images, ainsi que merge
, mais je ne sais pas comment fusionner deux images avec plusieurs colonnes basées sur deux colonnes?
Voir la documentation sur ?merge
, qui dit:
By default the data frames are merged on the columns with names they both have,
but separate specifications of the columns can be given by by.x and by.y.
Cela implique clairement que merge
fusionnera des trames de données basées sur plusieurs colonnes. A partir du dernier exemple donné dans la documentation:
x <- data.frame(k1=c(NA,NA,3,4,5), k2=c(1,NA,NA,4,5), data=1:5)
y <- data.frame(k1=c(NA,2,NA,4,5), k2=c(NA,NA,3,4,5), data=1:5)
merge(x, y, by=c("k1","k2")) # NA's match
Cet exemple était destiné à illustrer l'utilisation de incomparables
, mais il illustre également la fusion à l'aide de plusieurs colonnes. Vous pouvez également spécifier des colonnes distinctes dans x
et y
en utilisant by.x
et by.y
.
J'espère que cela t'aides;
df1 = data.frame(CustomerId=c(1:10),
Hobby = c(rep("sing", 4), rep("pingpong", 3), rep("hiking", 3)),
Product=c(rep("Toaster",3),rep("Phone", 2), rep("Radio",3), rep("Stereo", 2)))
df2 = data.frame(CustomerId=c(2,4,6, 8, 10),State=c(rep("Alabama",2),rep("Ohio",1), rep("Cal", 2)),
like=c("sing", 'hiking', "pingpong", 'hiking', "sing"))
df3 = merge(df1, df2, by.x=c("CustomerId", "Hobby"), by.y=c("CustomerId", "like"))
En supposant que df1$Hobby
et df2$like
signifient la même chose.
Vous pouvez également utiliser la commande join (dplyr).
Par exemple:
new_dataset <- dataset1 %>% right_join(dataset2, by=c("column1","column2"))