When figuring out which features to implement, it’s helpful to start with an existing package. DataFramesMeta exports the following:
-
@where: filter rows -
@transform: add a new column (setindex) -
@orderby: sorting columns -
@select: selecting columns (kind ofgetindex)- This always returned a dataframe, but theoretically this package should allow for
getindexto return: (1) the same type of table (2) an array or (3) a row
- This always returned a dataframe, but theoretically this package should allow for
-
groupby: group a dataset based on a key -
@by: perform an operation across different groups of a dataset
This seems like a superset the operations a generic table operations package would want to implement.
Note that I am just using DataFramesMeta as a way to kick-off the conversation. Additionally, DataFrames uses macros for non-standard evaluation of arguments, which is something I would very much like to avoid with a generic table package. Ideally it should be as easy to perform table manipulations inside a function as outside a function.