data.table Tutorial
Primeros pasos con data.table
Buscar..
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 |
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
.
Empezando y encontrando ayuda
El wiki oficial del paquete tiene algunos materiales esenciales:
Como nuevo usuario, querrá revisar las viñetas, las preguntas frecuentes y la hoja de trucos .
Antes de hacer una pregunta, aquí en StackOverflow o en cualquier otro lugar, lea la página de soporte .
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
.
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 |