之前做需要幾萬次重複的資料處理時,使用dplyr基本的data.frame操作語法,單一個運算單位包含了多組的pipe操作,大約五萬次運算,加上一些平行語法,後來發現盡然會讓R吃的資源爆表,仔細研究才發現dplyr在執行多組data.frame運算,搭配上pipe時,其實會進行資料的copy,幾層下來,很容易讓吃的ram大增,所以需要找一種在運算上較乾淨的套件,同時也能做複雜資料操作,而data.table就是為這件事情而生的,他可以操作100gb大小的data.frame處理,對於此量級資料的join, order, update, delete都可以有很高速的表現,相對於dplyr將資料操作抽象成比較貼近人思考的select,filter,mutate,summarize等,data.table的語法更貼近SQL一點。
整個Data.Table的語法概念可以由下面一張圖直接解釋
Take DT, subset rows using i, then calculate j grouped by by
閱讀參考:
[心得] 資料整理套件介紹-第一章 data.
有趣的各種data.table語法跟其他套件的比較
plyr::ddply vs data.table::rbindlist
R data.table – collating data
R data.table – subsets
R data.table – sum by groups
unnest in R data.table
datacamp的data.table語法整理
data.table cheat sheet
Frequently asked questions
Introduction to data.table
Keys and fast binary search based subset
Reference semantics
Efficient reshaping using data.tables
Secondary indices and auto indexing