我正在嘗試加入兩個資料框。一個是房屋銷售資料,另一個是與鐵路的距離。我正在嘗試使用包裹 ID 作為鍵來連接資料。銷售資料中的宗地 ID 將有多個值,因為宗地已售出多次。我希望資料連接起來,這樣距離值將針對宗地 ID 的每個實體重復,就像這樣。
資料框A:
| ID | 發售日期 | 銷售價格 |
|---|---|---|
| 123 | 2020 年 1 月 1 日 | 320000 |
| 123 | 2021 年 2 月 1 日 | 429000 |
| 124 | 2019 年 3 月 1 日 | 190000 |
| 124 | 2020 年 2 月 13 日 | 280000 |
| 124 | 2022 年 1 月 1 日 | 419000 |
| 125 | 2021 年 2 月 1 日 | 300000 |
| 125 | 2022 年 1 月 1 日 | 390000 |
| 126 | 2021 年 2 月 1 日 | 310000 |
資料框 B:
| ID | 距離 |
|---|---|
| 123 | 1290 |
| 124 | 1809 |
| 125 | 370 |
| 126 | 976 |
我希望加入的資料框看起來像這樣:
| ID | 發售日期 | 銷售價格 | 距離 |
|---|---|---|---|
| 123 | 2020 年 1 月 1 日 | 320000 | 1290 |
| 123 | 2021 年 2 月 1 日 | 429000 | 1290 |
| 124 | 2019 年 3 月 1 日 | 190000 | 1809 |
| 124 | 2020 年 2 月 13 日 | 280000 | 1809 |
| 124 | 2022 年 1 月 1 日 | 419000 | 1809 |
| 125 | 2021 年 2 月 1 日 | 300000 | 370 |
| 125 | 2022 年 1 月 1 日 | 390000 | 370 |
| 126 | 2021 年 2 月 1 日 | 310000 | 976 |
為每個宗地 ID 復制距離值。當我使用 left_join 時,我得到的新資料幀比任何一個原始資料幀都多(這是一個問題),距離有很多 NA 值(這是另一個問題)。我不明白為什么我的新資料幀比原始資料幀中最大的大,而且我不知道如何做到這一點,以便在包裹 ID 的每個實體中重復距離,而不是只復制一次,然后再復制 NA .
當我為這個問題尋找解決方案時,我主要找到了洗掉重復行的方法,這是我不想要的。我希望為資料框 A 中 ID 的每個實體復制資料框 B 中的行。
uj5u.com熱心網友回復:
您可以從包裝中left_join使用。您可以使用以下代碼:IDdplyr
df_A <- data.frame(ID = c(123, 123, 124, 124, 124, 125, 125, 126),
Sale_Date = c("1/1/2020", "2/1/2021", "3/1/2019", "2/13/2020", "1/1/2022", "2/1/2021", "1/1/2021", "2/1/2021"),
Sale_Price = c(320000, 429000, 190000, 280000, 419000, 300000, 390000, 310000))
df_B <- data.frame(ID = c(123, 124, 125, 126),
Distance = c(1290, 1809, 370, 976))
library(dplyr)
df_joined <- left_join(df_A, df_B, by = "ID")
df_joined
輸出:
ID Sale_Date Sale_Price Distance
1 123 1/1/2020 320000 1290
2 123 2/1/2021 429000 1290
3 124 3/1/2019 190000 1809
4 124 2/13/2020 280000 1809
5 124 1/1/2022 419000 1809
6 125 2/1/2021 300000 370
7 125 1/1/2021 390000 370
8 126 2/1/2021 310000 976
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/460335.html
上一篇:如何洗掉具有重復列組合的行
