私はplyr
とその仲間を使ってデータフレームとmerge
を組み合わせることはできますが、これまで2つのデータフレームを2列に基づいて複数の列にマージする方法がわかりませんでしたか?2つの列に基づいて2つのデータフレームを結合するにはどうすればよいですか?
63
A
答えて
95
は述べて?merge
のドキュメント、参照してください:
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.
をこれは明らかにmerge
が複数の列に基づいてデータフレームをマージすることを意味します。ドキュメントに与えられた最後の例から:
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
この例incomparables
の使用を実証するもので、それは同様に複数のカラムを使用してマージ示しました。それぞれx
とy
には、by.x
とby.y
を使用して別々の列を指定することもできます。
+2
@darkageこの質問は、データフレームのマージに関するものです。 Data.tablesがあるようです。全く違います。私はdata.tableのドキュメントを読むでしょう。 – joran
36
希望します。
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"))
df1$Hobby
とdf2$like
は同じことを意味と仮定。
関連する問題
- 1. owner_idに基づいて2つのテーブルを結合するにはどうすればいいですか?
- 2. 値に基づいて2つの配列を結合する
- 3. 選択した列の値に基づいて2つのデータフレームを結合するにはどうすればよいですか?
- 4. Pandasのデータフレーム内で2つの列を結合するにはどうすればよいですか?
- 5. SparkSQLデータフレームの2つの列を結合するにはどうすればよいですか?
- 6. 2つの配列を1つの配列に結合するにはどうすればよいですか?
- 7. 複数の列に基づいて2つの行を1つに結合するにはどうすればよいですか?ここ
- 8. コーディングインターン:2つのパラメータに基づいて2つのテーブルを結合する
- 9. 2つの結合クエリを1つに結合するにはどうすればよいですか?
- 10. 特定の列に基づいて2つのデータフレームを連結するにはどうすればよいですか?
- 11. 3つの列に基づいて2つのファイルを結合します
- 12. データフレームのIDに基づいて2つのデータフレームの合計の列
- 13. 私は2列に基づいて2つのデータフレームに参加しようとしている列補間
- 14. 2つのSQLクエリーを1つの結果に結合するにはどうすればよいですか?
- 15. 2つのテーブルの2つの列に基づいて行列を生成するにはどうすればよいですか?
- 16. MongoDB 3.2:配列インデックスに基づいて2つの配列を結合する
- 17. 2つの結果セットを共通の列で結合するにはどうすればよいですか?
- 18. 2つの他の列に基づいてRの行に結合する
- 19. Pythonでは、キー列で2つの配列を結合するにはどうすればよいですか?
- 20. ランタイムパフォーマンスに基づいて2つのソートアルゴリズムを切り替えるにはどうすればよいですか?
- 21. 値に基づいて2つのパンダの列を結合する
- 22. グループBY列に基づいて2つのクエリの結果を合計するにはどうすればよいですか?
- 23. Codeigniterは2つの結合条件に基づいて2つのテーブルを結合します
- 24. 結合されたデータフレームで3番目のリストを取得するデータフレームの2つのリストを結合するにはどうすればよいですか?
- 25. 最初の観測値の結果に基づいて2つの観測値を結合するにはどうすればよいですか?
- 26. これらの2つのクエリを1つに結合するにはどうすればよいですか?
- 27. タイムスタンプに基づいて2つのテーブルを1つに結合するクエリ
- 28. 2つのリストをプロパティに基づいて1つに結合する
- 29. Sparkで2つの配列を並列コレクションで結合するにはどうすればよいですか?
- 30. 部分一致列に基づいて2つの表を結合する
提供された回答(http://stackoverflow.com/q/1299871/)は、1つの列(「CustomerId」)のみに基づいているため、重複しているとは思われません。誰かがこの質問を「重複しない」ことができますか? – Lennert