Sélectionner des colonnes d'un data.table

Manipulation de données avec data.table en R

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

Forme générale de la syntaxe data.table (récapitulatif)

Le deuxième argument j sert à sélectionner (et calculer sur) des colonnes

# Forme générale de la syntaxe data.table
DT[i, j, by]
   |  |  |
   |  |  --> regrouper par quoi ?
   |  -----> quoi faire ?
   --------> sur quelles lignes ?
Manipulation de données avec data.table en R

Utiliser les noms de colonnes pour sélectionner

L'argument j accepte un vecteur de caractères de noms de colonnes

ans <- batrips[, c("trip_id", "duration")]
head(ans, 2)
trip_id duration
139545      435
139546      432
Manipulation de données avec data.table en R

Utiliser les noms de colonnes pour sélectionner

batrips_df <- as.data.frame(batrips)
ans <- batrips_df[, "trip_id"]
head(ans, 2)
# Le résultat est un vecteur, pas un data.frame
139545, 139546
ans <- batrips[, "trip_id"]
# Toujours un data.table, pas un vecteur
head(ans, 2) 
trip_id
139545
139546
Manipulation de données avec data.table en R

Les numéros de colonnes plutôt que les noms fonctionnent aussi

ans <- batrips[, c(2, 4)]
head(ans, 2)
duration  start_station
435       San Francisco City Hall
432       San Francisco City Hall

Cependant, c'est une mauvaise pratique

# Si l'ordre des colonnes change, le résultat est erroné
batrips[, c(2, 4)]

# Résultat toujours correct, peu importe l'ordre
batrips[, c("duration", "start_station")]
Manipulation de données avec data.table en R

Désélectionner des colonnes avec des vecteurs de caractères

  • -c("col1", "col2", ...) désélectionne les colonnes indiquées
  • Fonction pratique propre à data.table
  • Utiliser ! au lieu de - donne le même résultat
# Sélectionner toutes les colonnes *sauf* celles ci-dessous
ans <- batrips[, -c("start_date", "end_date", "end_station")]
head(ans, 1)
trip_id  duration  start_station             start_terminal  bike_id  end_terminal
139545   435       San Francisco City Hall   58              65       473 

subscription_type  zip_code
Subscriber         94612
Manipulation de données avec data.table en R

Sélectionner des colonnes à la façon data.table

Vous vous rappelez que, au chapitre précédent, les colonnes étaient utilisées comme des variables dans l'argument i ?

# Récap de l'argument "i"
# Tous les trajets de plus d'une heure
batrips[duration > 3600]

De même, vous pouvez utiliser une liste de variables (noms de colonnes) pour sélectionner des colonnes

ans <- batrips[, list(trip_id, dur = duration)]
head(ans, 2)
trip_id     dur
139545      435
139546      432
Manipulation de données avec data.table en R

Lorsque vous sélectionnez une seule colonne, ne pas l'entourer avec list() renvoie un vector

# Sélectionner une seule colonne et retourner un data.table
ans <- batrips[, list(trip_id)]
head(ans ,2)
trip_id
139545
139546
# Sélectionner une seule colonne et retourner un vecteur
ans <- batrips[, trip_id]
head(ans, 2)
139545 139546
Manipulation de données avec data.table en R

Sélectionner des colonnes à la façon data.table

.() est un alias de list(), pour plus de commodité

# .() équivaut à list()
ans <- batrips[, .(trip_id, duration)]
head(ans, 2)
trip_id duration
139545      435
139546      432
Manipulation de données avec data.table en R

Passons à la pratique !

Manipulation de données avec data.table en R

Preparing Video For Download...