集合運算

R 的 data.table 資料合併

Scott Ritchie

Postdoctoral Researcher in Systems Genomics

集合運算函式

給定兩個具有相同欄位的 data.tables

  • fintersect():兩個 data.table 共同擁有哪些列?
  • funion():跨這兩個 data.table 的不重複列有哪些?

  • fsetdiff():哪些列只在此 data.table 中出現?

R 的 data.table 資料合併

集合運算:`fintersect()`

擷取同時存在於兩個 data.table 的列

fintersect(dt1, dt2)

R 的 data.table 資料合併

`fintersect()` 與重複列

預設會忽略重複列:

fintersect(dt1, dt2)

R 的 data.table 資料合併

`fintersect()` 與重複列

all = TRUE:保留在兩個 data.table 中出現的份數:

fintersect(dt1, dt2, all = TRUE)

R 的 data.table 資料合併

集合運算:`fsetdiff()`

擷取只出現在第一個 data.table 的列

fsetdiff(dt1, dt2)

R 的 data.table 資料合併

`fsetdiff()` 與重複列

預設會忽略重複列:

fsetdiff(dt1, dt2)

R 的 data.table 資料合併

`fsetdiff()` 與重複列

all = TRUE:回傳所有多出的份數:

fsetdiff(dt1, dt2, all = TRUE)

R 的 data.table 資料合併

集合運算:`funion()`

擷取出現在任一 data.table 的所有列:

funion(dt1, dt2)

R 的 data.table 資料合併

`funion()` 與重複列

預設會忽略重複列:

funion(dt1, dt2)

R 的 data.table 資料合併

`funion()` 與重複列

all = TRUE:回傳所有列:

funion(dt1, dt2, all = TRUE) # rbind()

R 的 data.table 資料合併

合併多個 `data.table` 時去除重複

兩個 data.table

  1. funion() 串接不重複列

三個以上:

  1. rbind()rbindlist() 串接所有 data.table
  2. duplicated()unique() 辨識並移除重複
R 的 data.table 資料合併

一起來練習吧!

R 的 data.table 資料合併

Preparing Video For Download...