行。如果我有2個數據幀,說取一個數據幀匹配的所有行與其他數據幀
df1 = data.frame(A = c(10,20,30,20,10),B = c("a","b","c","b","a"))
df2 = data.frame(A = c(10,30),B = c("a","c"))
現在我想在DF1匹配的所有行與DF2行。在這裏,答案應該是:
>dfout
A B
1 10 a
2 30 c
3 10 a
如果我使用:
sqldf("select * from df1 intersect select * from df2")
我得到:
>output
A B
1 10 a
2 30 c
但我希望所有的匹配行,包括重複的。
注:我請求的解決方案應該是一個通用的解決方案,不需要在任何地方使用列名。
sqldf支持4個不同的後端。 –
確實如此,但默認情況下它使用sqlite。另外,幾乎所有其他的都必須單獨安裝。我將編輯帖子以提及這一點,但假設OP使用默認設置可能是安全的。另外,據我所知,後端都不支持PostgreSQL之外的** INTERSECT ALL **。 – Matthew
我已經更積極地重寫了它。 –