Premiers pas avec data.table

Installation et configuration

Installez la version stable de CRAN :

install.packages("data.table")       

Ou la version de développement de github :

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

Pour revenir de devel à CRAN, la version actuelle doit d’abord être supprimée :

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

[Visitez le site Web pour][1] les instructions d’installation complètes et les derniers numéros de version.

Utilisation du package

Habituellement, vous voudrez charger le package et toutes ses fonctions avec une ligne comme

library(data.table)

Si vous n’avez besoin que d’une ou deux fonctions, vous pouvez vous y référer comme data.table::fread à la place.

[1] : https://github.com/Rdatatable/data.table/wiki/Installation

Syntaxe et fonctionnalités

Syntaxe de base

La syntaxe DT[where, select|update|do, by] est utilisée pour travailler avec les colonnes d’un data.table.

  • La partie “où” est l’argument i
  • La partie “select|update|do” est l’argument j

Ces deux arguments sont généralement passés par position plutôt que par nom.

Une séquence d’étapes peut être enchaînée comme DT[...][...].

Raccourcis, fonctions spéciales et symboles spéciaux dans DT[...]

Fonction ou symbole Remarques
.() en plusieurs arguments, remplace list()
J() dans i, remplace list()
:= en j, une fonction permettant d’ajouter ou de modifier des colonnes
.N en i, le nombre total de lignes
en j, le nombre de lignes dans un groupe
.Je dans ‘j’, le vecteur des numéros de lignes du tableau (filtré par ‘i’)
.SD dans j, le sous-ensemble courant des données
sélectionné par l’argument .SDcols
.GRP dans ‘j’, l’index courant du sous-ensemble de données
.BY dans j, la liste des valeurs par pour le sous-ensemble de données actuel
V1, V2, ... noms par défaut pour les colonnes sans nom créées dans j

Jointure à l’intérieur de DT[...]

notation Remarques
DT1[DT2, on, j] joindre deux tables
je.* préfixe spécial sur les colonnes de DT2 après la jointure
par=.EACHI option spéciale disponible uniquement avec une jointure
DT1[!DT2, on, j] anti-jointure de deux tables
DT1[DT2, on, roll, j] joindre deux tables, rouler sur la dernière colonne dans on=

Remodeler, empiler et diviser

notation Remarques
melt(DT, id.vars, measure.vars) transformer en format long
pour plusieurs colonnes, utilisez measure.vars = patterns(...)
dcast(DT, formule) transformer en format large
rbind(DT1, DT2, ...) empiler les données énumérées.tables
rbindlist(DT_list, idcol) empiler une liste de data.tables
split(DT, par) diviser un data.table en une liste

Quelques autres fonctions spécialisées pour data.tables

Fonction(s) Remarques
chevauchements chevauchement des jointures
fusionner une autre façon de joindre deux tables
set une autre façon d’ajouter ou de modifier des colonnes
fintersect, fsetdiff,
funion, fsetequal,
unique, duplicated, anyDuplicated
opérations de la théorie des ensembles avec des lignes comme éléments
CJ le produit cartésien de vecteurs
uniqueN le nombre de lignes distinctes
rowidv(DT, colonnes) ID de ligne (1 à .N) dans chaque groupe déterminé par les colonnes
rleidv(DT, cols) ID de groupe (1 à .GRP) au sein de chaque groupe déterminé par des séries de colonnes
shift(DT, n) appliquer un opérateur de décalage à chaque colonne
setorder, setcolorder,
setnames, setkey, setindex,
setattr
modifier les attributs et trier par référence

Autres fonctionnalités du package

Caractéristiques Remarques
IDate et ITime dates et heures entières

Démarrer et trouver de l’aide

Le [wiki officiel][2] du package contient certains éléments essentiels :

  • En tant que nouvel utilisateur, vous voudrez consulter les [vignettes, FAQ et aide-mémoire][1].

  • Avant de poser une question - ici sur StackOverflow ou ailleurs - veuillez lire [la page d’assistance][3].

Pour obtenir de l’aide sur des fonctions individuelles, la syntaxe est help("fread") ou ?fread. Si le paquet n’a pas été chargé, utilisez le nom complet comme ?data.table::fread.

[1] : https://github.com/Rdatatable/data.table/wiki/Getting-started [2] : https://github.com/Rdatatable/data.table/wiki [3] : https://github.com/Rdatatable/data.table/wiki/Support