Supposons qu'il y ait deux trames de données likes les suivantes (données de this post):conditionnelle JOIN sur deux trames de données en R
df1 = data.frame(CustomerId = c(1:6), Product = c(rep("Toaster", 3), rep("Radio", 3)))
df2 = data.frame(CustomerId = c(2, 4, 6), State = c(rep("Alabama", 2), rep("Ohio", 1)))
df1
# CustomerId Product
# 1 Toaster
# 2 Toaster
# 3 Toaster
# 4 Radio
# 5 Radio
# 6 Radio
df2
# CustomerId State
# 2 Alabama
# 4 Alabama
# 6 Ohio
La question est de savoir comment puis-je faire la requête SQL suivante dans R:
SELECT * FROM df1 JOIN df2 on df1.CustomerId <= df2.CustomerId
Ce que je sais, c'est que je peux faire la jointure interne en utilisant merge(df1, df2, by = "CustomerId")
. Mais il n'est pas satisfait la condition de la jointure.
'bibliothèque (sqldf); sqldf ("SELECT * FROM df1 JOIN df2 sur df1.CustomerId <= df2.CustomerId") ' –
@ G.Grothendieck Donc, cela ne peut pas être fait en utilisant la fonction' merge'? – OmG
Voir ce [link] (https://stackoverflow.com/questions/1299871/how-to-join-merge-data-frames-inner-outer-left-right) – L30n1d45