Looking for data.table Answers? Try Ask4KnowledgeBase
Looking for data.table Keywords? Try Ask4Keywords

data.tablePrimeros pasos con data.table


Observaciones

Data.table es un paquete para el entorno informático estadístico R Amplía la funcionalidad de los marcos de datos desde la base R, mejorando particularmente su rendimiento y sintaxis. Una serie de tareas relacionadas, incluidas las combinaciones sucesivas y no equitativas, se manejan en una sintaxis concisa consistente como DT[where, select|update|do, by] .

Una serie de funciones complementarias también se incluyen en el paquete:

  • I / O: fread / fwrite
  • Remodelación: melt / dcast / rbindlist / split
  • Corridas de valores: rleid

Versiones

Versión Notas Fecha de lanzamiento en CRAN
1.9.4 2014-10-02
1.9.6 2015-09-19
1.9.8 2016-11-24
1.10.0 "En retrospectiva, la última versión v1.9.8 debería haber sido nombrada v1.10.0" 2016-12-03
1.10.1 En desarrollo 2016-12-03

Empezando y encontrando 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 se ha cargado, use el nombre completo como ?data.table::fread .

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 últimos números de versión.

Usando el paquete

Normalmente 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 .

Sintaxis y características

Sintaxis basica

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

  • La parte "donde" es el argumento i
  • La parte "seleccionar | actualizar | hacer" 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[...][...] .

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

Función o símbolo Notas
.() en varios argumentos, reemplaza list()
J() en i , reemplaza la list()
:= 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 los números de fila en la tabla (filtrado por i )
.SD en j , el subconjunto actual de los datos
seleccionado por el argumento .SDcols
.GRP en j , el índice actual del subconjunto de los datos
.BY en j , la lista de valores por 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, on, j] unir dos mesas
i.* prefijo especial en las columnas de DT2 después de la unión
by=.EACHI Opción especial disponible solo con una unión
DT1[!DT2, on, j] anti-unirse a dos mesas
DT1[DT2, on, roll, j] unir dos tablas, rodando en la última columna en on=

Remodelación, apilado y fraccionamiento.

Notación Notas
melt(DT, id.vars, measure.vars) transformar a formato largo
para columnas múltiples, use measure.vars = patterns(...)
dcast(DT, formula) transformar a formato ancho
rbind(DT1, DT2, ...) apilar datos enumerados.
rbindlist(DT_list, idcol) apilar una lista de data.tables
split(DT, by) dividir una tabla de datos en una lista

Algunas otras funciones especializadas para data.tables.

Función (es) Notas
foverlaps superposición de combinaciones
merge otra forma de unir dos mesas
set 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.
uniqueN el número de filas distintas
rowidv(DT, cols) ID de fila (1 a .N) dentro de cada grupo determinado por cols
rleidv(DT, cols) ID de grupo (1 a .GRP) dentro de cada grupo determinado por ejecuciones de cols
shift(DT, n) aplicar un operador de turno a cada columna
setorder , setcolorder ,
setnames , setkey , setindex ,
setattr
Modificar atributos y ordenar por referencia.

Otras características del paquete.

Caracteristicas Notas
IDate y ITime fechas y horas enteras