| Inspection |
Compact structure preview |
glimpse() |
Extends str() with tabular focus |
Formats metadata after standardization |
glimpse() is descriptive;
summarise()-style names are unrelated |
| Inspection |
Dimensions |
dims() |
Thin wrapper around dim() |
No special backend logic needed |
Avoids turning shape inspection into a verb grammar |
| Inspection |
Column type summary |
types() |
Extends class() / typeof() |
Reads normalized table metadata |
Distinct from across()-style type tooling |
| Inspection |
First and last rows |
headtail() |
Combines head() and tail() |
Uses ordinary row slicing |
More compact than ad hoc preview verbs |
| Inspection |
Column summaries |
describe() |
Extends summary() |
Computes summaries efficiently from normalized columns |
Not a summarise() clone; oriented to EDA |
| Rows |
Row filtering |
subset() |
Direct base analogue |
Evaluates rows then subsets through data.table |
Keeps base semantics instead of filter() |
| Columns |
Keep columns |
pick() |
Mirrors positive column indexing |
Validated column selection |
select() is too strongly tied to dplyr |
| Columns |
Drop columns |
drop() |
Mirrors negative column indexing |
Set difference over names |
select(-x) is a dplyr idiom; drop() is
explicit |
| Transform |
Add/modify columns |
transform() |
Direct base analogue |
Mutable data.table assignment |
Avoids mutate() grammar |
| Transform |
Block mutation/removal |
within() |
Direct base analogue |
Evaluate then rebuild |
Base name is already correct |
| Order |
Sort rows |
reorder() |
Extends order() to data frames |
setorderv() handles multi-column ordering |
Avoids SQL-flavored arrange() |
| Grouping |
Group summaries |
aggregate() |
Direct base analogue |
Group aggregation in data.table |
Avoids summarise() / grouped objects |
| Grouping |
Group counts |
count() |
Close to table() and row counts |
.N in data.table |
Kept as a narrow convenience, not a grammar anchor |
| Join |
Merge tables |
merge() |
Direct base analogue |
merge.data.table() |
Keeps established join naming |
| Split/apply |
Split data |
split() |
Direct base analogue |
Group split in data.table |
No grouped state object |
| Split/apply |
Apply by groups |
by_apply() |
Inspired by by() |
Split then apply |
Explicitly grouped without group_by() |
| Split/apply |
Recombine pieces |
combine() |
Natural complement to split |
rbindlist() |
Clear and base-like |
| Reshape |
Wide/long reshape |
reshape() |
Direct base analogue |
Delegates to stats::reshape() |
Base already has the right term |
| Reshape |
Stack columns |
stack() |
Direct base analogue |
Delegates to utils::stack() |
Base already has the right term |
| Reshape |
Unstack values |
unstack() |
Direct base analogue |
Delegates to utils::unstack() |
Base already has the right term |
| Missingness |
Missing summaries |
missingness() |
Extends is.na() / complete.cases() |
Column/row scans after normalization |
missing() would conflict with base R’s primitive |
| EDA |
Frequency tables |
freq() |
Extends table() / prop.table() |
Counts in data.table |
Focused helper, not a grouped summarise layer |
| EDA |
Dataset profile |
profile() |
Extends summary() |
Joins type, missingness, and distinct stats |
EDA-oriented, not transformation-oriented |
| EDA |
Compare datasets |
compare() |
Extends all.equal()-style checking |
Compares schema and summaries |
Makes differences explicit without join grammar |