Primeros pasos con data.table

Instalación y configuración

Instale la versión estable de CRAN:

install.packages("data.table")       

O la versión de desarrollo de github:

install.packages("data.table", type = "source", 
  repos = "http://Rdatatable.github.io/data.table")

Para volver de devel a CRAN, primero se debe eliminar la versión actual:

remove.packages("data.table")
install.packages("data.table")

Visite el sitio web para obtener instrucciones de instalación completas y los números de versión más recientes.

Usando el paquete

Por lo general, querrá cargar el paquete y todas sus funciones con una línea como

library(data.table)

Si solo necesita una o dos funciones, puede referirse a ellas como data.table::fread en su lugar.

Sintaxis y características

Sintaxis básica

La sintaxis DT[where, select|update|do, by] se usa para trabajar con columnas de una tabla de datos.

  • La parte “dónde” es el argumento i
  • La parte “select|update|do” es el argumento j

Estos dos argumentos generalmente se pasan por posición en lugar de por nombre.

Una secuencia de pasos se puede encadenar como DT[...][...].

Accesos directos, funciones especiales y símbolos especiales dentro de DT[...]

Función o símbolo Notas
.() en varios argumentos, reemplaza list()
J() en i, reemplaza lista()
:= en j, una función utilizada para agregar o modificar columnas
.N en i, el número total de filas
en j, el número de filas en un grupo
.I en j, el vector de números de fila en la tabla (filtrado por i)
.SD en j, el subconjunto actual de los datos
seleccionados por el argumento .SDcols
.GRP en j, el índice actual del subconjunto de los datos
.POR en j, la lista de valores para el subconjunto actual de datos
V1, V2, ... nombres predeterminados para columnas sin nombre creadas en j

Se une dentro de DT[...]

Notación Notas
DT1[DT2, activado, j] unir dos mesas
i.* prefijo especial en las columnas de DT2 después de la unión
por=.EACHI opción especial disponible solo con una unión
DT1[!DT2, activado, j] anti-unir dos mesas
DT1[DT2, en, rodar, j] une dos tablas, rodando en la última columna en on=

Remodelación, apilamiento y división

Notación Notas
melt(DT, id.vars, medida.vars) transforme a formato largo
para varias columnas, use measure.vars = patterns(...)
dcast(DT, fórmula) transformar a formato ancho
rbind(DT1, DT2, ...) apilar tablas de datos enumerados
rbindlist(DT_list, idcol) apilar una lista de data.tables
dividir (DT, por) dividir una tabla de datos en una lista

Algunas otras funciones especializadas para data.tables

Función(es) Notas
superposiciones uniones superpuestas
combinar otra forma de unir dos mesas
conjunto otra forma de agregar o modificar columnas
fintersect, fsetdiff,
funion, fsetequal,
unique, duplicated, anyDuplicated
operaciones de teoría de conjuntos con filas como elementos
CJ el producto cartesiano de vectores
únicoN el número de filas distintas
rowidv(DT, columnas) ID de fila (1 a .N) dentro de cada grupo determinado por cols
rleidv(DT, columnas) ID de grupo (1 a .GRP) dentro de cada grupo determinado por series de columnas
desplazamiento (DT, n) aplicar un operador de cambio a cada columna
setorder, setcolorder,
setnames, setkey, setindex,
setattr
modificar atributos y ordenar por referencia

Otras características del paquete

Características Notas
IDate y ITime fechas y horas enteras

Primeros pasos y búsqueda de ayuda

El wiki oficial del paquete tiene algunos materiales esenciales:

Para obtener ayuda sobre funciones individuales, la sintaxis es help("fread") o ?fread. Si el paquete no ha sido cargado, use el nombre completo como ?data.table::fread.