R, Python, DB 備忘録

データベースとか、jupyter(Python)、Rとか色々

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)