data.table 語法

R 的 data.table 資料合併

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

data.table 語法複習

一般 data.table 語法形式

DT[i, j, by]
   |  |  |
   |  |  --> 依哪些欄位分組?
   |  -----> 要做什麼?
   --------> 作用在哪些列?
R 的 data.table 資料合併

連接(Join)

一般 data.table 連接語法形式

DT[i, on]
   |   |
   |   ----> 連接鍵欄位
   --------> 要連接到哪個 data.table?
R 的 data.table 資料合併

右連接

預設連接為右連接(right join)

demographics[shipping, on = .(name)]

R 的 data.table 資料合併

on 參數

list().() 中的變數,會在兩個 data.table 的欄名中查找

shipping[demographics, on = list(name)]
shipping[demographics, on = .(name)]

也可使用字元向量

join_key <- c("name")
shipping[demographics, on = join_key]
R 的 data.table 資料合併

左連接

記住:左連接等同於交換順序的右連接:

shipping[demographics, on = .(name)]

R 的 data.table 資料合併

內連接

nomatch = 0 設為內連接(inner join):

shipping[demographics, on = .(name), nomatch = 0]

R 的 data.table 資料合併

全連接

data.table 語法不支援,請改用 merge()

merge(demographics, shipping, by = "name", all = TRUE)

R 的 data.table 資料合併

反連接(Anti-join)

篩選在另一個 data.table 中沒有對應的列

demographics[!shipping, on = .(name)]

R 的 data.table 資料合併

一起來練習吧!

R 的 data.table 資料合併

Preparing Video For Download...