data.tables 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