123 votes

Comment combiner deux data-frames basées sur deux colonnes ?

Je sais que je peux utiliser le plyr et ses amis pour combiner des dataframes, et merge aussi, mais jusqu'à présent je ne sais pas comment fusionner deux dataframes avec plusieurs colonnes basées sur 2 Colonnes?

68voto

Hyunbong Lee Points 471

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.

14voto

Daniela Points 121

Vous pouvez également utiliser la commande join (dplyr).

Par example:

 new_dataset <- dataset1 %>% right_join(dataset2, by=c("column1","column2"))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X