iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0
AI/ ML & Data

資料科學的小筆記系列 第 19

Day19:使用dplyr進行資料表連結

  • 分享至 

  • xImage
  •  

今天要來紀錄常用的“Mutating Joins” 函式,用來將兩個資料表根據匹配的列進行合併

建立範例資料表

library(dplyr)

# 建立表格 x
x <- tribble(
  ~A,  ~B, ~C,
  "a", "t",  1,
  "b", "u",  2,
  "c", "v",  3
)

# 建立表格 y
y <- tribble(
  ~A,  ~B, ~D,
  "a", "t",  3,
  "b", "u",  2,
  "d", "w",  1
)
  1. left_join(): 保留左表的所有列,等同SQL語法的left join。只保留左表(x)的所有資料列。右表(y)中沒有匹配的資料列會被代入 NA 。
# 左連接
left_join_result <- left_join(x, y, by = c("A", "B"))

# 查看結果
print(left_join_result)

https://ithelp.ithome.com.tw/upload/images/20240830/20168607HF4T5WVm6p.png

  1. right_join(): 保留右表的所有列,等同SQL語法的right join。只保留右表(y)的所有資料列。左表(x)中沒有匹配的資料列會被代入 NA 。
# 右連接
right_join_result <- right_join(x, y, by = c("A", "B"))

# 查看結果
print(right_join_result)

https://ithelp.ithome.com.tw/upload/images/20240830/20168607YvRgMDcxVI.png

  1. inner_join(): 只保留配對到的列,等同SQL語法的inner join。只保留在左表(x)和右表(y)中都有匹配到的資料列,並將它們合併在一起。如果沒有匹配,該資料列會被丟棄。
# 內連接
inner_join_result <- inner_join(x, y, by = c("A", "B"))

# 查看結果
print(inner_join_result)

https://ithelp.ithome.com.tw/upload/images/20240830/20168607AWIHJx06mQ.png

  1. full_join(): 保留所有的列,等同SQL語法的full join。會保留左表(x)和右表(y)中的所有列,並將它們合併在一起。未匹配的值會被代入 NA 。
# 全連接
full_join_result <- full_join(x, y, by = c("A", "B"))

# 查看結果
print(full_join_result)

https://ithelp.ithome.com.tw/upload/images/20240830/20168607Yt9DWGSuog.png

參考資料:

  1. Data transformation with dplyr :: Cheatsheet

上一篇
Day18:使用dplyr合併資料表
下一篇
Day20:使用dplyr進行篩選資料列
系列文
資料科學的小筆記29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言