data.table vs dplyr
data.table
rdatatable.gitlab.iodplyr
dplyr.tidyverse.orgSide by side
| Figure | data.table | dplyr |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Windows | Yes | Yes |
| macOS | Yes | Yes |
| Linux | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Data Transformation Tools | 8.5 (#11) | 8.2 (#14) |
| Joins | Its join features include ordered, rolling, overlapping range, and non-equi joins. | dplyr includes two-table verbs for working with pairs of data frames. |
| License | The project repository identifies its license as MPL-2.0. | The dplyr site identifies its license as MIT. |
| Support | The project directs users who need help to the data.table community on Stack Overflow. | The project directs bug reports to GitHub and questions or discussion to the Posit community forum. |
Plans
In their own words
data.table
data.table is a free R package providing a high-performance version of base R’s data.frame. Its code interface supports filtering, grouping, aggregation, ordered and rolling joins, overlapping and non-equi joins, reshaping with dcast and melt, and adding, updating, or deleting columns. fread() reads delimited text, including CSV, TSV, compressed .gz and .bz2 files, and can source web URLs or shell commands. fwrite() writes delimited files with an emphasis on speed for large files. Many operations use multiple CPU threads internally. Columns can be changed by reference without copies, and the project reports no external Imports, LinkingTo, or Depends dependencies. Queries can call R functions from other packages. data.table runs on Linux, macOS, and Windows and requires base R. It is self-hosted and licensed under MPL-2.0. The project’s stated scope excludes binary formats such as Parquet and data stored on disk or in remote SQL databases.
dplyr
dplyr is a free R package for transforming data frames and tibbles through a set of code-based operations. Its main verbs add variables with mutate(), choose variables with select(), filter cases with filter(), summarize values with summarise(), and order rows with arrange(). Combine them with group_by() to apply operations to groups, or use two-table verbs to work with pairs of datasets. The across() helper repeats an operation over several columns, while rowwise() supports row-by-row work. The programming guide covers data masking, tidy selection, and use in functions or loops. For other data settings, dbplyr translates dplyr code into SQL for relational databases; the documentation also lists Arrow, dtplyr, duckplyr, and sparklyr as alternative backends for larger datasets. dplyr runs on Linux, macOS, and Windows and is licensed under MIT. The CRAN package requires R 4.1.0 or later, and installation instructions cover CRAN and a development version from GitHub. The project recommends dplyr to people learning data transformation in R for Data Science.