Freedom251 › Data Transformation Tools
data.table

What data.table is
data.table is a free R package that provides a high-performance version of base R’s data.frame. It supports filtering, grouping, aggregation, joins, reshaping, and adding, updating, or deleting columns. Its joins include ordered, rolling, overlapping range, and non-equi options, while dcast and melt support reshaping. For file work, fread() reads delimited text, including CSV and TSV, and can read from web URLs or shell commands; it also supports compressed .gz and .bz2 files. fwrite() writes delimited files and is optimized for speed on large files. Many common operations use multiple CPU threads internally. The project describes the package as memory efficient: columns can be changed by reference without making copies. It has no external Imports, LinkingTo, or Depends dependencies, and queries can use functions from other R packages. data.table runs on Linux, macOS, and Windows and requires base R. Its stated scope excludes binary formats such as Parquet and data stored on disk or in remote SQL databases. The package uses a code-based interface and is licensed under MPL-2.0.
Who it suits
data.table suits R users working with tabular data who want code-based filtering, joins, reshaping, and delimited-file workflows. It is less suited to workflows centered on Parquet or data stored in remote SQL databases.
What it does well
- Supports multiple join types and reshaping
- Reads delimited files from URLs or shell commands
- Writes delimited files with fwrite()
- Changes columns by reference without copies
- Runs on Linux, macOS, and Windows
What to know first
- Requires base R
- Binary formats such as Parquet are out of scope
- On-disk and remote SQL data are out of scope
Limits
The project’s stated scope excludes reading and writing binary files such as Parquet, as well as manipulating data stored on disk or in remote SQL databases.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| data.table | R package; requires base R | Free |
As rdatatable.gitlab.io lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Install base R on Linux, macOS, or Windows.
- Install the data.table R package.
- Use its code interface to work with tabular data.
- Use fread() to read delimited files or fwrite() to write them.
data.table is a free R package for fast, memory-conscious work on in-memory tables and delimited files. It is most useful to analysts and developers already writing R who need richer joins and efficient large-table updates. Choose it for demanding in-R transformations; look elsewhere when your workflow depends on Parquet, remote SQL systems, or disk-resident data.
Overview
data.table extends base R's data.frame with a high-performance implementation and additional syntax. Filtering, grouping, aggregation, joins, reshaping, and column creation or removal are handled in one code-focused interface. Because it is an R package, it fits naturally into scripts and projects that already use R functions from other packages.
The package is self-hosted: you install it alongside base R on Linux, macOS, or Windows. It has no external Imports, LinkingTo, or Depends dependencies, which keeps the package's dependency footprint small. The project continuously tests against R 3.5.0, its stated oldest supported R dependency.
Key features
Transformations and joins
Standard filtering, grouping, and aggregation cover everyday analysis, while ordered, rolling, overlapping-range, and non-equi joins address relationships that simple key matching cannot. dcast and melt provide reshaping for wide and long table layouts. Queries can call functions from other R packages, so data.table can sit inside a broader R analysis stack rather than forcing a separate language.
Memory and parallel execution
Columns can be added, updated, or deleted by reference without making copies. On large in-memory tables, avoiding those copies can reduce memory pressure and make repeated updates more practical. Many common operations are internally parallelized across CPU threads, adding concurrency within the package's normal operations. These advantages apply to data that fits in memory; they do not turn data.table into an out-of-memory engine.
Delimited-file handling
fread() reads CSV, TSV, and other delimited text, including compressed .gz and .bz2 files. It can read directly from web URLs or shell commands, which is useful for scripted ingestion. fwrite() produces delimited output with speed-oriented handling for large files. Binary formats such as Parquet are outside the project's current scope.
Support and governance
Help is directed to the active data.table community on Stack Overflow. The project is fiscally sponsored by NumFOCUS, accepts donations for project needs, uses a custom governance agreement, and identifies its repository license as MPL-2.0.
Pricing
There is one plan, with no trial or paid tier to compare:
| Plan | Price | Includes |
|---|---|---|
| data.table | free | R package; requires base R |
The free plan suits individual analysts, research teams, and organizations able to install and maintain software themselves. There are no seat quotas, usage allowances, renewal charges, or trial expiry terms stated for this plan. Its trade-off is the self-hosted, code-only model: you supply the R environment and infrastructure.
Platforms
Supported systems are Linux, macOS, and Windows. Deployment is self-hosted, and the transformation interface is code in R. Supported data formats are CSV, TSV, delimited text, and compressed .gz and .bz2 files.
Who it's for
Choose data.table if you work in R and need fast transformations on sizeable tables, especially when reference-based updates can avoid duplicate copies. It is also a strong fit for scripted delimited-file pipelines that need URL or shell-command input and large-file output.
It is a poor fit when binary-file exchange such as Parquet is central, or when data must remain on disk or in a remote SQL database. Those use cases fall outside its stated scope and call for a tool designed around those storage models.
Pros and cons
- Pro: Reference-based column changes avoid copies, helping control memory use on large in-memory tables.
- Pro: Specialized join types, reshaping, and broad transformations cover complex analytical relationships in R code.
- Pro: fread() and fwrite() handle large delimited-file workflows, including compressed files and URL or shell-command input.
- Pro: Many common operations use multiple CPU threads internally, and the package has no external Imports, LinkingTo, or Depends dependencies.
- Con: Parquet and other binary-file workflows are outside scope, limiting it for modern columnar-data exchanges.
- Con: It does not target on-disk or remote SQL data manipulation, so data must be handled in the R process.
- Con: The self-hosted, code-only model requires users to provide base R and their own runtime environment.
Alternatives
Pick dplyr instead if you want a free, MIT-licensed R package for data manipulation with a different R workflow. dbplyr is the better choice when a free R package aimed at database-backed work matches your needs. Choose jq for free command-line JSON processing across Linux, macOS, Windows, self-hosted, and web environments.
Polars is worth choosing when a freemium, MIT-licensed data-manipulation library and its API or web options suit your stack. Apache Beam fits an open-source programming model whose execution can use different runners and infrastructure. Bonobo is a free Apache-licensed option for supported desktop and self-hosted platforms.
For a hosted free tier, Bruin for Customer Success offers $100 in credits and 50 AI tasks without a credit card. csvkit is a free MIT-licensed command-line toolkit for CSV work. Browse the Data Transformation Tools list for more choices.
Verdict
data.table is an excellent free choice for R practitioners who need fast, feature-rich transformations and delimited-file handling while keeping tables in memory. Its memory-saving reference updates, specialized joins, and threaded operations are compelling reasons to adopt it. Look elsewhere if Parquet, remote SQL, or disk-based processing is a core requirement.
Verdict
data.table combines tabular transformations and delimited-file handling in an R package with memory-conscious column updates. Its stated scope makes it a fit for in-memory R workflows rather than binary-file or remote-database manipulation.
Questions
How much does data.table cost?
The data.table plan is free.
Is there a free plan or trial?
The package is free. There is no free trial.
Which platforms does it support?
The installation guide lists Linux, Mac, and Windows.
Is data.table open source?
The repository identifies its license as MPL-2.0.
What files can it work with?
It supports CSV, TSV, delimited text, and compressed .gz and .bz2 files. Binary formats such as Parquet are outside its stated scope.
Who makes data.table and where can users get help?
The data.table project is fiscally sponsored by NumFOCUS. It directs users seeking help to its Stack Overflow community.
Facts from data.table's own pages
- Community support
- The project directs users who need help to its active Stack Overflow community. · rdatatable.gitlab.io, 8 Oct 2026
- Data operations
- It supports filtering, grouping, aggregation, joins, reshaping, and adding, updating, or deleting columns. · rdatatable.gitlab.io, 8 Oct 2026
- Dependencies
- The project says it has no dependencies other than base R. · rdatatable.gitlab.io, 8 Oct 2026
- File export
- The package includes fwrite, a fast writer for delimited files. · rdatatable.gitlab.io, 8 Oct 2026
- File format limit
- Reading and writing binary files such as Parquet is listed as outside the project’s current scope. · rdatatable.gitlab.io, 8 Oct 2026
- File import
- The package includes fread, a fast reader for delimited files. · rdatatable.gitlab.io, 8 Oct 2026
- File input
- Its fread() function reads delimited files and can read directly from web URLs or shell commands. · rdatatable.gitlab.io, 8 Oct 2026
- File output
- Its fwrite() function writes delimited files and is optimized for speed on large files. · rdatatable.gitlab.io, 8 Oct 2026
- Funding
- The data.table project is fiscally sponsored by NumFOCUS and accepts donations to support project needs. · rdatatable.gitlab.io, 8 Oct 2026
- Governance
- The project uses a custom governance agreement and is fiscally sponsored by NumFOCUS. · rdatatable.gitlab.io, 8 Oct 2026
- Integrations
- data.table is an R package and can use R functions from other packages in queries. · rdatatable.gitlab.io, 8 Oct 2026
- Joins
- Its join features include ordered, rolling, overlapping range, and non-equi joins. · rdatatable.gitlab.io, 8 Oct 2026
- License
- The project repository identifies its license as MPL-2.0. · github.com, 8 Oct 2026
- Memory behavior
- Columns can be added, updated, or deleted by reference without making copies. · rdatatable.gitlab.io, 8 Oct 2026
- Memory use
- The project describes data.table as memory efficient and says columns can be added, updated, or deleted by reference without copies. · rdatatable.gitlab.io, 8 Oct 2026
- Out-of-memory limit
- Manipulating data stored on disk or in remote SQL databases is listed as outside the project’s current scope. · rdatatable.gitlab.io, 8 Oct 2026
- Parallel processing
- Many common operations are internally parallelized to use multiple CPU threads. · rdatatable.gitlab.io, 8 Oct 2026
- R compatibility
- The project says it continuously tests against R 3.5.0, its stated current oldest supported R dependency. · rdatatable.gitlab.io, 8 Oct 2026
- Reshaping
- It supports reshaping data with dcast and melt. · rdatatable.gitlab.io, 8 Oct 2026
- Support
- The project directs users who need help to the data.table community on Stack Overflow. · rdatatable.gitlab.io, 8 Oct 2026
- Supported systems
- The installation guide lists Linux, Mac, and Windows. · github.com, 8 Oct 2026
- What it does
- data.table provides a high-performance version of base R’s data.frame with syntax and feature enhancements. · rdatatable.gitlab.io, 8 Oct 2026
- What it is
- data.table is an R package that provides a high-performance version of base R’s data.frame. · rdatatable.gitlab.io, 8 Oct 2026
Where data.table stands on Freedom251
- Data Transformation Tools#11 of 37
