Package: data.table 1.18.99

Tyson Barrett

data.table: Extension of `data.frame`

Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns, friendly and fast character-separated-value read/write. Offers a natural and flexible syntax, for faster development.

Authors:Tyson Barrett [aut, cre], Matt Dowle [aut], Arun Srinivasan [aut], Jan Gorecki [aut], Michael Chirico [aut], Toby Hocking [aut], Benjamin Schwendinger [aut], Ivan Krylov [aut], Pasha Stetsenko [ctb], Tom Short [ctb], Steve Lianoglou [ctb], Eduard Antonyan [ctb], Markus Bonsch [ctb], Hugh Parsonage [ctb], Scott Ritchie [ctb], Kun Ren [ctb], Xianying Tan [ctb], Rick Saporta [ctb], Otto Seiskari [ctb], Xianghui Dong [ctb], Michel Lang [ctb], Watal Iwasaki [ctb], Seth Wenchel [ctb], Karl Broman [ctb], Tobias Schmidt [ctb], David Arenburg [ctb], Ethan Smith [ctb], Francois Cocquemas [ctb], Matthieu Gomez [ctb], Philippe Chataignon [ctb], Nello Blaser [ctb], Dmitry Selivanov [ctb], Andrey Riabushenko [ctb], Cheng Lee [ctb], Declan Groves [ctb], Daniel Possenriede [ctb], Felipe Parages [ctb], Denes Toth [ctb], Mus Yaramaz-David [ctb], Ayappan Perumal [ctb], James Sams [ctb], Martin Morgan [ctb], Michael Quinn [ctb], @javrucebo [ctb], Marc Halperin [ctb], Roy Storey [ctb], Manish Saraswat [ctb], Morgan Jacob [ctb], Michael Schubmehl [ctb], Davis Vaughan [ctb], Leonardo Silvestri [ctb], Jim Hester [ctb], Anthony Damico [ctb], Sebastian Freundt [ctb], David Simons [ctb], Elliott Sales de Andrade [ctb], Cole Miller [ctb], Jens Peder Meldgaard [ctb], Vaclav Tlapak [ctb], Kevin Ushey [ctb], Dirk Eddelbuettel [ctb], Tony Fischetti [ctb], Ofek Shilon [ctb], Vadim Khotilovich [ctb], Hadley Wickham [ctb], Bennet Becker [ctb], Kyle Haynes [ctb], Boniface Christian Kamgang [ctb], Olivier Delmarcell [ctb], Josh O'Brien [ctb], Dereck Mezquita [ctb], Michael Czekanski [ctb], Dmitry Shemetov [ctb], Nitish Jha [ctb], Joshua Wu [ctb], Iago Giné-Vázquez [ctb], Anirban Chetia [ctb], Doris Amoakohene [ctb], Angel Feliz [ctb], Michael Young [ctb], Mark Seeto [ctb], Philippe Grosjean [ctb], Vincent Runge [ctb], Christian Wia [ctb], Elise Maigné [ctb], Vincent Rocher [ctb], Vijay Lulla [ctb], Aljaž Sluga [ctb], Bill Evans [ctb], Reino Bruner [ctb], @badasahog [ctb], Vinit Thakur [ctb], Mukul Kumar [ctb], Ildikó Czeller [ctb], Manmita Das [ctb], Tarun Thammisetty [ctb], Marco Colombo [ctb]

data.table_1.18.99.tar.gz
data.table_1.18.99.zip(r-4.7-x86_64)data.table_1.18.99.zip(r-4.7-arm64)data.table_1.18.99.zip(r-4.6-x86_64)data.table_1.18.99.zip(r-4.6-arm64)data.table_1.18.99.zip(r-4.5-x86_64)
data.table_1.18.99.tgz(r-4.6-x86_64)data.table_1.18.99.tgz(r-4.6-arm64)data.table_1.18.99.tgz(r-4.5-x86_64)data.table_1.18.99.tgz(r-4.5-arm64)
data.table_1.18.99.tar.gz(r-4.7-arm64)data.table_1.18.99.tar.gz(r-4.7-x86_64)data.table_1.18.99.tar.gz(r-4.6-arm64)data.table_1.18.99.tar.gz(r-4.6-x86_64)
data.table_1.18.99.tgz(r-4.6-emscripten)
manual.pdf |manual.html
DESCRIPTION |NEWS
card.svg |card.png
data.table/json (API)

# Install 'data.table' in R:
install.packages('data.table', repos = c('https://rdatatable.r-universe.dev', 'https://cloud.r-project.org'))

Bug tracker:https://github.com/rdatatable/data.table/issues

Uses libs:
  • zlib– Compression library
  • openmp– GCC OpenMP (GOMP) support library

On CRAN:

Conda:

zlibopenmp

23.53 score 3.9k stars 5.2k packages 238k scripts 800k downloads 139 exports 0 dependencies

Last updated from:813ed951c5. Checks:12 OK, 3 NOTE. Indexed: yes.

TargetResultTimeFilesSyslog
linux-devel-arm64OK173
linux-devel-x86_64OK214
source / vignettesOK234
linux-release-arm64OK175
linux-release-x86_64OK198
macos-release-arm64OK177
macos-release-x86_64OK397
macos-oldrel-arm64NOTE165
macos-oldrel-x86_64NOTE359
windows-devel-arm64OK306
windows-devel-x86_64OK324
windows-release-arm64OK303
windows-release-x86_64OK204
windows-oldrel-x86_64NOTE216
wasm-releaseOK113

Exports::=.BY.EACHI.GRP.I.Last.updated.N.NGRP.ROW.SD.selfref.ok%between%%chin%%flike%%ilike%%inrange%%like%%notin%%plike%addressalloc.colas.data.tableas.IDateas.ITimeas.xts.data.tablebetweenbinary_reopenercbindlistchgroupchmatchchorderCJcopycubedata.tabledcastdcast.data.tablefcasefcoalescefctrfdroplevelsfifelsefintersectfirstformat_colformat_list_itemfoverlapsfrankfrankvfreadfrevfrolladaptfrollapplyfrollmaxfrollmeanfrollmedianfrollminfrollprodfrollsdfrollsumfrollvarfsetdifffsetequalfsortfunionfwritegetDTthreadsgetNumericRoundinggroupingsetshaskeyhourIDateTimeindicesinrangeis.data.tableisoweekisoyearkeylastletlikemdaymeasuremeasurevmeltmelt.data.tablemerge.data.tablemergelistminutemonthnafillpatternsquarterrbindlistrleidrleidvrolluprowidrowidvrowwiseDTsecondsetsetalloccolsetallocrowsetattrsetcbindlistsetcolordersetDFsetdroplevelssetDTsetDTthreadssetindexsetindexvsetkeysetkeyvsetmergelistsetnafillsetnamessetNumericRoundingsetordersetordervshiftshouldPrintSJsubstitute2tablestest.data.tabletimetakentransposetruelengthtstrsplituniqueNupdate_dev_pkgwdayweekydayyearyearmonyearqtr

Dependencies:

Reference semantics
Data | Introduction | 1. Reference semantics | a) Background | shallow vs deep copy | b) The := operator | 2. Add/update/delete columns by reference | a) Add columns by reference | -- How can we add columns speed and total delay of each flight to flights data.table? | Note that | b) Update some rows of columns by reference - sub-assign by reference | -- Replace those rows where hour == 24 with the value 0 | Exercise: | c) Delete column by reference | -- Remove delay column | d) := along with grouping using by | -- How can we add a new column which contains for each orig,dest pair the maximum speed? | Note on zero-length RHS and by | e) Multiple columns and := | -- How can we add two more columns computing max() of dep_delay and arr_delay for each month, using .SD? | -- How can we update multiple existing columns in place using .SD? | 3. := and copy() | a) := for its side effect | b) The copy() function | c) Selecting columns: $ / [[...]] vs [, col] | d) Side effects and testing | Summary | The := operator

Last update: 2026-07-29
Started: 2015-01-22

Fast Read and Fast Write
1. fread() | 1.1 Using command line tools directly | 1.1.1 Reading directly from a text string | 1.1.2 Reading from URLs | 1.1.3 Automatic decompression of compressed files | 1.2 Automatic separator and skip detection | 1.3 High-Quality Automatic Column Type Detection | 1.4 Early Error Detection at End-of-File | 1.5 integer64 Support | 1.6 Drop or Select Columns by Name or Position | 1.7 Automatic Quote Escape Detection (Including No-Escape) | 2. fwrite() | 2.1 Intelligent and Minimalist Quoting (quote="auto") | 2.2 Fine-Grained Date/Time Serialization (dateTimeAs argument) | 2.3 Handling of bit64::integer64 | 2.4 Column Order and Subset Control | 3. A Note on Performance

Last update: 2026-07-11
Started: 2025-08-14

Introduction to data.table
Data analysis using data.table | Data | Introduction | 1. Basics | a) What is data.table? | Note that: | b) General form - in what way is a data.table enhanced? | The way to read it (out loud) is: | c) Subset rows in i | -- Get all the flights with "JFK" as the origin airport in the month of June. | -- Get the first two rows from flights. | -- Sort flights first by column origin in ascending order, and then by dest in descending order: | order() is internally optimised | d) Select column(s) in j | -- Select arr_delay column, but return it as a vector. | -- Select arr_delay column, but return as a data.table instead. | Tip: | -- Select both arr_delay and dep_delay columns. | -- Select both arr_delay and dep_delay columns and rename them to delay_arr and delay_dep. | e) Compute or do in j | -- How many trips have had total delay < 0? | What's happening here? | f) Subset in i and do in j | -- Calculate the average arrival and departure delay for all flights with "JFK" as the origin airport in the month of June. | -- How many trips have been made in 2014 from "JFK" airport in the month of June? | g) Handle non-existing elements in i | -- What happens when querying for non-existing elements? | Special symbol .N: | h) Great! But how can I refer to columns by names in j (like in a data.frame)? | -- Select both arr_delay and dep_delay columns the data.frame way. | -- Select columns named in a variable using the .. prefix | -- Select columns named in a variable using with = FALSE | 2. Aggregations | a) Grouping using by | -- How can we get the number of trips corresponding to each origin airport? | -- How can we calculate the number of trips for each origin airport for carrier code "AA"? | -- How can we get the total number of trips for each origin, dest pair for carrier code "AA"? | -- How can we get the average arrival and departure delay for each orig,dest pair for each month for carrier code "AA"? | b) Sorted by: keyby | -- So how can we directly order by all the grouping variables? | c) Chaining | -- How can we order ans using the columns origin in ascending order, and dest in descending order? | d) Expressions in by | -- Can by accept expressions as well or does it just take columns? | e) Multiple columns in j - .SD | -- Do we have to compute mean() for each column individually? | Special symbol .SD: | -- How can we specify just the columns we would like to compute the mean() on? | .SDcols | f) Subset .SD for each group: | -- How can we return the first two rows for each month? | g) Why keep j so flexible? | -- How can we concatenate columns a and b for each group in ID? | -- What if we would like to have all the values of column a and b concatenated, but returned as a list column? | Summary | Using i: | Using j: | Using by: | And remember the tip:

Last update: 2026-06-08
Started: 2016-03-06

Importing data.table
Why to import data.table | Importing data.table is easy | DESCRIPTION file | NAMESPACE file | Usage | Testing | Testing using testthat | Dealing with "undefined global functions or variables" | Care needed when providing and using options | Troubleshooting | License | Optionally import data.table: Suggests | data.table in Imports but nothing imported | Further information on dependencies | Importing data.table C routines | How to convert your Depends dependency on data.table to Imports | Step 0. Ensure your package is passing R CMD check initially | Step 1. Update the DESCRIPTION file to put data.table in Imports, not Depends | Step 2.1: Run R CMD check | Step 2.2: Modify the NAMESPACE file | Blanket import | Step 3: Update Your R code files outside the package's R/ directory | Benefits of using Imports

Last update: 2026-05-26
Started: 2017-11-27

Joins in data.table
1. Defining example data | 2. data.table joining syntax | 3. Equi joins | 3.1. Right join | 3.1.1. Joining by a list argument | 3.1.2. Alternatives to define the on argument | 3.1.3. Operations after joining | Managing shared column Names with the j argument | Summarizing with on in data.table | 3.1.4. Joining based on several columns | 3.2. Inner join | 3.3. Anti-join | 3.4. Semi join | 3.5. Left join | 3.5.1. Joining after chain operations | 3.6. Many to many join | 3.6.1. Selecting one match | 3.6.2. Cross join | 3.7. Full join | 4. Non-equi join | 4.1 Output column names in non-equi joins | 5. Rolling join | 6. Taking advantage of joining speed | 6.1. Subsets as joins | 6.2. Updating by reference | Reference

Last update: 2026-01-20
Started: 2024-10-07

Keys and fast binary search based subset
Data | Introduction | 1. Keys | a) What is a key? | Keys and their properties | b) Set, get and use keys on a data.table | -- How can we set the column origin as key in the data.table flights? | set* and :=: | -- Use the key column origin to subset all rows where the origin airport matches "JFK" | -- How can we get the column(s) a data.table is keyed by? | c) Keys and multiple columns | -- How can I set keys on both origin and dest columns? | -- Subset all rows using key columns where first key column origin matches "JFK" and second key column dest matches "MIA" | How does the subset work here? | -- Subset all rows where just the first key column origin matches "JFK" | -- Subset all rows where just the second key column dest matches "MIA" | What's happening here? | 2. Combining keys with j and by | a) Select in j | -- Return arr_delay column as a data.table corresponding to origin = "LGA" and dest = "TPA". | b) Chaining | -- On the result obtained above, use chaining to order the column in decreasing order. | c) Compute or do in j | -- Find the maximum arrival delay corresponding to origin = "LGA" and dest = "TPA". | d) sub-assign by reference using := in j | e) Aggregation using by | -- Get the maximum departure delay for each month corresponding to origin = "JFK". Order the result by month | 3. Additional arguments - mult and nomatch | a) The mult argument | -- Subset only the first matching row from all rows where origin matches "JFK" and dest matches "MIA" | -- Subset only the last matching row of all the rows where origin matches "LGA", "JFK", "EWR" and dest matches "XNA" | b) The nomatch argument | -- From the previous example, Subset all rows only if there's a match | 4. binary search vs vector scans | a) Performance of binary search approach | b) Why does keying a data.table result in blazing fast subsets? | Vector scan approach | Binary search approach | Summary

Last update: 2025-12-29
Started: 2015-01-23

Programming on data.table
Introduction | Problem description | Example | Approaches to the problem | Avoid lazy evaluation | Use of parse / eval | Computing on the language | Use third party packages | Substituting variables and names | Substitute functions | Substitute variables and character values | Substituting lists of arbitrary length | Substitution of a complex query | Common mistakes | Use env argument from inside another function | Retired interfaces | get | mget | eval

Last update: 2025-12-29
Started: 2021-05-10

Secondary indices and auto indexing
Data | Introduction | 1. Secondary indices | a) What are secondary indices? | Keyed vs. Indexed Subsetting | b) Set and get secondary indices | -- How can we set the column origin as a secondary index in the data.table flights? | -- How can we get all the secondary indices set so far in flights? | c) Why do we need secondary indices? | -- Reordering a data.table can be expensive and not always ideal | setkey() requires: | -- There can be only one key at the most | -- Secondary indices can be reused | -- The new on argument allows for cleaner syntax and automatic creation and reuse of secondary indices | on argument | 2. Fast subsetting using on argument and secondary indices | a) Fast subsets in i | -- Subset all rows where the origin airport matches "JFK" using on | -- How can I subset based on origin and dest columns? | b) Select in j | -- Return arr_delay column alone as a data.table corresponding to origin = "LGA" and dest = "TPA" | c) Chaining | -- On the result obtained above, use chaining to order the column in decreasing order. | d) Compute or do in j | -- Find the maximum arrival delay corresponding to origin = "LGA" and dest = "TPA". | e) sub-assign by reference using := in j | f) Aggregation using by | -- Get the maximum departure delay for each month corresponding to origin = "JFK". Order the result by month | g) The mult argument | -- Subset only the first matching row where dest matches "BOS" and "DAY" | -- Subset only the last matching row where origin matches "LGA", "JFK", "EWR" and dest matches "XNA" | h) The nomatch argument | -- From the previous example, subset all rows only if there's a match | 3. Auto indexing

Last update: 2025-12-29
Started: 2016-03-26

Benchmarking data.table
fread: clear caches | subset: threshold for index optimization on compound queries | subset: index aware benchmarking | by reference operations | try to benchmark atomic processes | avoid class coercion | avoid microbenchmark(..., times=100) | multithreaded processing | inside a loop prefer set instead of := | inside a loop prefer setDT instead of data.table()

Last update: 2025-12-26
Started: 2018-03-20

Efficient reshaping using data.tables
Data | Introduction | 1. Default functionality | a) melting data.tables (wide to long) | - Convert DT to long form where each dob is a separate observation. | - Name the variable and value columns to child and dob respectively | b) dcasting data.tables (long to wide) | - How can we get back to the original data table DT from DT.m1? | - Starting from DT.m1, how can we get the number of children in each family? | 2. Limitations in previous melt/dcast approaches | Issues | 3. Enhanced (new) functionality | a) Enhanced melt | - melt multiple columns simultaneously | - Using patterns() | - Using measure() to specify measure.vars via separator or pattern | b) Enhanced dcast | - Casting multiple value.vars simultaneously | Multiple functions to fun.aggregate:

Last update: 2025-12-26
Started: 2015-06-23

Frequently Asked Questions about data.table
Beginner FAQs | Why do DT[ , 5] and DT[2, 5] return a 1-column data.table rather than vectors like data.frame? | Why does DT[,"region"] return a 1-column data.table rather than a vector? | Why does DT[, region] return a vector for the "region" column? I'd like a 1-column data.table. | Why does DT[ , x, y, z] not work? I wanted the 3 columns x,y and z. | I assigned a variable mycol="x" but then DT[, mycol] returns an error. How do I get it to look up the column name contained in the mycol variable? | What are the benefits of being able to use column names as if they are variables inside DT[...]? | OK, I'm starting to see what data.table is about, but why didn't you just enhance data.frame in R? Why does it have to be a new package? | Why are the defaults the way they are? Why does it work the way it does? | Isn't this already done by with() and subset() in base? | Why does X[Y] return all the columns from Y too? Shouldn't it return a subset of X? | What is the difference between X[Y] and merge(X, Y)? | Anything else about X[Y, sum(foo*bar)]? | That's nice. How did you manage to change it given that users depended on the old behaviour? | General Syntax | How can I avoid writing a really long j expression? You've said that I should use the column names, but I've got a lot of columns. | Why is the default for mult now "all"? | I'm using c() in j and getting strange results. | I have built up a complex table with many columns. I want to use it as a template for a new table; i.e., create a new table with no rows, but with the column names and types copied from my table. Can I do that easily? | Is a null data.table the same as DT[0]? | Why has the DT() alias been removed? | But my code uses j = DT(...) and it works. The previous FAQ says that DT() has been removed. | What are the scoping rules for j expressions? | Can I trace the j expression as it runs through the groups? | Inside each group, why are the group variables length-1? | Only the first 10 rows are printed, how do I print more? | With an X[Y] join, what if X contains a column called "Y"? | X[Z[Y]] is failing because X contains a column "Y". I'd like it to use the table Y in calling scope. | Can you explain further why data.table is inspired by A[B] syntax in base? | Can base be changed to do this then, rather than a new package? | I've heard that data.table syntax is analogous to SQL. | What are the smaller syntax differences between data.frame and data.table | I'm using j for its side effect only, but I'm still getting data returned. How do I stop that? | Why does [.data.table now have a drop argument from v1.5? | Rolling joins are cool and very fast! Was that hard to program? | Why does DT[i, col := value] return the whole of DT? I expected either no visible value (consistent with <-), or a message or return value containing how many rows were updated. It isn't obvious that the data has indeed been updated by reference. | OK, thanks. What was so difficult about the result of DT[i, col := value] being returned invisibly? | Why do I have to type DT sometimes twice after using := to print the result to console? | I've noticed that base::cbind.data.frame (and base::rbind.data.frame) appear to be changed by data.table. How is this possible? Why? | I've read about method dispatch (e.g. merge may or may not dispatch to merge.data.table) but how does R know how to dispatch? Are dots significant or special? How on earth does R know which function to dispatch and when? | Why do T and F behave differently from TRUE and FALSE in some data.table queries? | Questions relating to compute time | I have 20 columns and a large number of rows. Why is an expression of one column so quick? | I don't have a key on a large table, but grouping is still really quick. Why is that? | Why is grouping by columns in the key faster than an ad hoc by? | What are primary and secondary indexes in data.table? | Error messages | "Could not find function DT" | "unused argument(s) (MySum = sum(v))" | "translateCharUTF8 must be called on a CHARSXP" | cbind(DT, DF) returns a strange format, e.g. Integer,5 | "cannot change value of locked binding for .SD" | "cannot change value of locked binding for .N" | Warning messages | "The following object(s) are masked from package:base: cbind, rbind" | "Coerced numeric RHS to integer to match the column's type" | Reading data.table from RDS or RData file | General questions about the package | v1.3 appears to be missing from the CRAN archive? | Is data.table compatible with S-plus? | Is it available for Linux, Mac and Windows? | I think it's great. What can I do? | I think it's not great. How do I warn others about my experience? | I have a question. I know the r-help posting guide tells me to contact the maintainer (not r-help), but is there a larger group of people I can ask? | Where are the datatable-help archives? | I'd prefer not to post on the Issues page, can I mail just one or two people privately? | I have created a package that uses data.table. How do I ensure my package is data.table-aware so that inheritance from data.frame works?

Last update: 2025-12-26
Started: 2016-03-02

Using .SD for Data Analysis
What is .SD? | Loading and Previewing Lahman Data | .SD on Ungrouped Data | Column Subsetting: .SDcols | Column Type Conversion | Controlling a Model's Right-Hand Side | Conditional Joins | Grouped .SD operations | Group Subsetting | Group Optima | Grouped Regression

Last update: 2025-12-26
Started: 2019-05-22

Readme and manuals

Help Manual

Help pageTopics
Enhanced data.framedata.table-package . .( .() .. data.table is.na.data.table Ops.data.table [.data.table
Assignment by reference:= let set
Number of rows affected by last update.Last.updated Last.updated
Tests self reference of a data.table.selfref.ok
Address in RAM of a variableaddress
Equality Test Between Two Data Tablesall.equal all.equal.data.table
Coerce to data.tableas.data.table as.data.table.array as.data.table.character as.data.table.data.frame as.data.table.data.table as.data.table.Date as.data.table.factor as.data.table.integer as.data.table.list as.data.table.logical as.data.table.matrix as.data.table.numeric as.data.table.ordered is.data.table
Efficient xts to as.data.table conversionas.data.table.xts
Convert a data.table to a matrixas.matrix as.matrix.data.table
Efficient data.table to xts conversionas.xts.data.table
Convenience functions for range subsets%between% %inrange% between inrange
Create a function to open connections in binary modebinary_reopener binary_reopener.bzfile binary_reopener.default binary_reopener.file binary_reopener.gzfile binary_reopener.pipe binary_reopener.unz binary_reopener.url
Column bind multiple data.tablescbind cbind.data.table cbindlist setcbindlist
data.table exported C routinescdatatable
Faster match of character vectors%chin% chgroup chmatch chorder
Copy an entire objectcopy
S4 Definition for data.tableclass:data.table data.table-class
Condition Handling with Classed Conditionsdata.table-condition-classes
Global Options for the data.table Packagedata.table-options data.table.options datatable-options datatable.options
Optimisations in data.tableauto-index auto-indexing autoindex autoindexing data.table-optimize data.table.optimize datatable-optimize datatable.optimize GForce gforce rounding
Fast dcast for data.tabledcast dcast.data.table
Determine Duplicate RowsanyDuplicated anyDuplicated.data.table duplicated duplicated.data.table unique unique.data.table uniqueN
fcasefcase
Coalescing missing valuesfcoalesce setcoalesce
Create a factor retaining original orderingfactor fctr
Fast droplevelsdroplevels droplevels.data.table fdroplevels setdroplevels
Fast ifelsefifelse ifelse
Fast overlap joinsfoverlaps
Fast rankfrank frankv rank
Fast and friendly file finaglerfread
Fast reversefrev rev
Rolling functionsfroll frollmax frollmean frollmedian frollmin frollprod frollsd frollsum frollvar moving roll rolling rollmax rollmean rollmedian rollmin rollprod rollsd rollsum rollvar running sliding
Adapt rolling window to irregularly spaced time seriesfrolladapt
Rolling user-defined functionfrollapply rollapply
Fast parallel sortfsort
Fast CSV writerfwrite
Grouping Set aggregation for data tablescube cube.data.table groupingsets groupingsets.data.table rollup rollup.data.table
Integer based date classas.character.ITime as.Date.IDate as.IDate as.IDate.Date as.IDate.default as.ITime as.ITime.character as.ITime.default as.ITime.POSIXlt as.ITime.times as.list.IDate as.POSIXct.IDate as.POSIXct.ITime as.POSIXlt.ITime c.IDate c.ITime format.ITime hour IDate IDate-class IDateTime IDateTime.default isoweek isoyear ITime ITime-class mday mean.IDate mean.ITime minute month print.ITime quarter rep.IDate rep.ITime round.IDate round.ITime second seq.IDate seq.ITime trunc.ITime wday week yday year yearmon yearqtr
Creates a join 'data.table'CJ J SJ
First/last item of an objectfirst last
Convenience function for calling grep%flike% %ilike% %like% %plike% like
Specify measure.vars via regex or separatormeasure measurev
Fast melt for data.tablemelt melt.data.table
Merge two data.tablesmerge merge.data.table
Merge multiple data.tablesmergelist setmergelist
Remove rows with missing values on columns specifiedna.omit na.omit.data.table
Fill missing valuesfill locf na.fill nafill nocb setnafill
Convenience operator for checking if an example is not in a set of elements%notin%
Obtain matching indices corresponding to patternspatterns
data.table Printing Optionsformat_col format_col.default format_col.expression format_col.POSIXct format_list_item format_list_item.default print.data.table
Makes one data.table from a list of manyrbind rbind.data.table rbindlist
Generate run-length type group idrleid rleidv
Generate unique row ids within each grouprowid rowidv
Create a data.table row-wiserowwiseDT
Set attributes of objects by referencesetattr setnames
Fast column reordering of a data.table by referencesetcolorder
Coerce a data.table to data.frame by referencesetDF
Coerce lists and data.frames to data.table by referencesetDT
Set or get number of threads that data.table should usegetDTthreads openMP openmp setDTthreads
Create key on a data.tablehaskey indices key setindex setindexv setkey setkeyv
Change or turn off numeric roundinggetNumericRounding setNumericRounding
Set operations for data tablesexcept fexcept fintersect fsetdiff fsetequal funion intersect setdiff setequal setops union
Fast row reordering of a data.table by referencefastorder forder forderv order setorder setorderv sort_by
Fast lead/lag for vectors and listslag lead shift
For use by packages that mimic/divert auto printing e.g. IRkernel and knitrshouldPrint
Special symbols.BY .EACHI .GRP .I .N .NATURAL .NGRP .ROW .SD datatable-symbols special-symbols
Split data.table into chunks in a listsplit split.data.table
Subsetting data.tablessubset subset.data.table
Substitute expressionI substitute substitute2
Display 'data.table' metadatatables
Test assertions for equality, exceptions and console outputtest
Runs a set of teststest.data.table
Pretty print of time takentimetaken
Efficient transpose of listtranspose
Over-allocation accessalloc.col setalloccol setallocrow truelength
strsplit and transpose the resulting list efficientlystrsplit tstrsplit
Perform update of development version of a packageupdate_dev_pkg