data.table
s are looked for by name in the tables
argument and in the execution environment.
Internal execution interface.
ex_data_table_step( optree, ..., tables = list(), source_usage = NULL, source_limit = NULL, env = parent.frame() )
optree | relop operations tree. |
---|---|
... | not used, force later arguments to bind by name. |
tables | named list map from table names used in nodes to data.tables and data.frames. |
source_usage | list mapping source table names to vectors of columns used. |
source_limit | if not null limit all table sources to no more than this many rows (used for debugging). |
env | environment to work in. |
resulting data.table (intermediate tables can somtimes be mutated as is practice with data.table).
ex_data_table_step.relop_drop_columns
: implement drop columns
ex_data_table_step.relop_extend
: implement extend/assign operator
ex_data_table_step.relop_natural_join
: implement natural join
ex_data_table_step.relop_non_sql
: direct function (non-sql) operator (not implemented for data.table
)
ex_data_table_step.relop_null_replace
: implement NA/NULL replacement
ex_data_table_step.relop_orderby
: implement row ordering
ex_data_table_step.relop_project
: implement row ordering
ex_data_table_step.relop_rename_columns
: implement column renaming
ex_data_table_step.relop_select_columns
: implement select columns
ex_data_table_step.relop_select_rows
: implement select rows
ex_data_table_step.relop_sql
: direct sql operator (not implemented for data.table
)
ex_data_table_step.relop_table_source
: implement data source
ex_data_table_step.relop_theta_join
: implement theta join (not implemented for data.table
)
ex_data_table_step.relop_unionall
: implement row binding
a <- data.table::data.table(x = c(1, 2) , y = c(20, 30), z = c(300, 400)) optree <- local_td(a) %.>% select_columns(., c("x", "y")) %.>% select_rows_nse(., x<2 & y<30) cat(format(optree))#> mk_td("a", c( #> "x", #> "y", #> "z")) %.>% #> select_columns(., #> c('x', 'y')) %.>% #> select_rows(., #> x < 2 & y < 30)ex_data_table_step(optree)#> x y #> 1: 1 20#> x y #> 1 1 20#> x y #> 1 0 4