data.table
普段はデータの加工にdata.frame(dplyr, tidyr等)の関数を使うのだが処理速度の観点からdata.tableの構文を使いたいこともあり
基本
dt[行フィルタリング, 列操作, Grouping]
- 列操作において x:= の構文を用いると、その結果を返すのでなく、元のdata.table自体を置き換えることになる。
group_by, summarize
- data.frame
dt %>% group_by(key) %>% summarize(value=f(value))
- data.table
dt[, value:=f(value), by=key]
mutate
- data.frame
dt %>% mutate(value=g(.))
- data.table
dt[, value:=g(.)]
Join ( from X *** join Y On )
- Inner join
X[Y, nomatch=0] - left Join
Y[X] - right join
X[Y] - full outer join
merge(X, Y, all=TRUE)