R語言-使用data.table物件Cross Join

目錄

原始文章

R語言-使用data.table物件Cross Join


data.table是R語言中非常流行且好用的套件,但是它join的方式不是很直覺。常用的join方式如下表。參考資料〈JOINing data in R using data.table〉

Join類型DTdata.table::merge()
InnerX[Y, nomatch = 0]merge(X, Y, all=FALSE)
Left OuterY[X]merge(X, Y, all.x=TRUE)
Right Outermerge(X, Y, all.y=TRUE)
Full Outermerge(X, Y, all=TRUE)
Full Outer Where Null (Not Inner)merge(X, Y, all=TRUE)
Cross Join

那Cross Join呢?

Cross Join是SQL中的一種Join方式,這個方式會讓資料量瞬間爆增,但某些情況下卻也滿好用的。

SQL CROSS JOIN
圖片來源:SQL CROSS JOIN

來吧,複製貼上

把這個function加到你的codebase中,這樣之後就可以直接使用了,簡潔俐落又帥氣。

dt_cross_join <- function(a, b){  
  cj = CJ(1:nrow(a),1:nrow(b))
  cbind(a[cj[[1]],],b[cj[[2]],])
}

推薦文章

在DataCamp學Python和R語言,快速入門資料科學

Content Protection by DMCA.com
A
Aron

以前用MIX這個名字在網路打滾,後來改為Aron。工業設計系畢業,曾任職知名品牌行銷企劃,做點設計,寫文案也寫網站;目前擔任零售業數據分析師。最近開始練格鬥和Python量化投資。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *