You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: vignettes/datatable-secondary-indices-and-auto-indexing.Rmd
+5-1Lines changed: 5 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,11 @@ knitr::opts_chunk$set(
24
24
.old.th = setDTthreads(1)
25
25
```
26
26
27
-
This vignette assumes that the reader is familiar with data.table's `[i, j, by]` syntax, and how to perform fast key based subsets. If you're not familiar with these concepts, please read the [`vignette("datatable-intro", package="data.table")`](datatable-intro.html), [`vignette("datatable-reference-semantics", package="data.table")`](datatable-reference-semantics.html), and [`vignette("datatable-keys-fast-subset", package="data.table")`](datatable-keys-fast-subset.html) vignettes first.
27
+
This vignette assumes that the reader is familiar with data.table's `[i, j, by]` syntax, and how to perform fast key based subsets. If you're not familiar with these concepts, please read the following vignettes first:
Copy file name to clipboardExpand all lines: vignettes/fr/datatable-secondary-indices-and-auto-indexing.Rmd
+39-7Lines changed: 39 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ vignette: >
11
11
12
12
```{r echo=FALSE, file='../_translation_links.R'}
13
13
```
14
-
`r .write.translation.links("Translations of this document are available in: %s")`
14
+
`r .write.translation.links("Une traduction de ce document est disponible en : %s")`
15
15
16
16
```{r, echo = FALSE, message = FALSE}
17
17
require(data.table)
@@ -24,13 +24,17 @@ knitr::opts_chunk$set(
24
24
.old.th = setDTthreads(1)
25
25
```
26
26
27
-
Cette vignette suppose que le lecteur est familier avec la syntaxe `[i, j, by]` de data.table, et sur la façon d’effectuer des sous-ensembles basés sur des clés rapides. Si vous n'êtes pas familier avec ces concepts, veuillez d'abord lire les vignettes *"Introduction à data.table"*, *"Sémantique de référence"* et *"Sous-ensembles basés sur les clés et la recherche binaire rapide"*.
27
+
Cette vignette suppose que le lecteur est familier avec la syntaxe `[i, j, by]` de data.table, et sur la façon d’effectuer des sous-ensembles basés sur des clés rapides. Si vous n'êtes pas familier avec ces concepts, veuillez d'abord lire les vignettes suivantes :
Nous utiliserons les mêmes données `flights` que dans la vignette*"Introduction à data.table"*.
37
+
Nous utiliserons les mêmes données `flights` que dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html).
34
38
35
39
```{r echo = FALSE}
36
40
options(width = 100L)
@@ -62,6 +66,26 @@ Les indices secondaires sont similaires aux `clés` dans *data.table*, à l'exce
62
66
63
67
* Il peut y avoir plus d'un index secondaire pour une table de données (comme nous le verrons plus loin).
64
68
69
+
#### Clés et sous-ensembles rapides
70
+
71
+
Bien que **clés** et **indices** permettent à deux, les sous ensembles de la recherche binaire rapide, ils sont différents par leur utilisation :
72
+
73
+
**Indices par clé** (correspondance par colonne implicite)
74
+
75
+
```{r keyed_operations}
76
+
DT = data.table(a = c(TRUE, FALSE), b = 1:2)
77
+
setkey(DT, a) # définit la clé, réorganise DT
78
+
DT[.(TRUE)] # 'on' est facultatif; si omis, la clé est utilisée
79
+
```
80
+
81
+
**Sous ensembles indexés** (spécification explicite de colonne)
82
+
83
+
```{r unkeyed_operations}
84
+
DT = data.table(a = c(TRUE, FALSE), b = 1:2)
85
+
setindex(DT, a) # définir l'index seulement (sans réorganiser)
86
+
DT[.(TRUE), on = "a"] # 'on' est nécessaire
87
+
```
88
+
65
89
### b) Définir et obtenir des indices secondaires
66
90
67
91
#### -- Comment définir la colonne `origin` comme index secondaire dans l’objet *data.table*`flights` ?
@@ -191,9 +215,17 @@ flights[.("JFK", "LAX"), on = c("origin", "dest")][1:5]
191
215
192
216
* Comme le temps de calcul de l'index secondaire est assez faible, nous n'avons pas besoin d'utiliser `setindex()`, sauf si, une fois de plus, la tâche implique un sous-ensemble répété sur la même colonne.
193
217
218
+
* Pour la lisibilité et la compréhension, on peut nommer les entrées inputs dans `i`, par exemple :
219
+
220
+
```{r}
221
+
flights[.(origin = "JFK", dest = "LAX"), on = c("origin", "dest")]
222
+
```
223
+
224
+
On voit clairement quelles entrées de `j` correspondent à quel élément de `on`.
225
+
194
226
### b) Sélection dans `j`
195
227
196
-
Toutes les opérations que nous allons discuter ci-dessous ne sont pas différentes de celles que nous avons déjà vues dans la vignette*Clé et recherche binaire rapide basée sur un sous-ensemble*. Sauf que nous utiliserons l'argument `on` au lieu de définir des clés.
228
+
Toutes les opérations que nous allons discuter ci-dessous ne sont pas différentes de celles que nous avons déjà vues dans la [`vignette("datatable-keys-fast-subset", package="data.table")`](datatable-keys-fast-subset.html). Sauf que nous utiliserons l'argument `on` au lieu de définir des clés.
197
229
198
230
#### -- Retourner la colonne `arr_delay` seule en tant que data.table correspondant à `origin = "LGA"` et `dest = "TPA"`
### e) *sous-assignation* par référence en utilisant `:=` dans `j`
221
253
222
-
Nous avons déjà vu cet exemple dans les vignettes *Sémantique des références*et *Clé et sous-ensemble basé sur la recherche binaire rapide*. Regardons toutes les `heures` disponibles dans le *data.table*`flights` :
254
+
Nous avons déjà vu cet exemple dans la [`vignette("datatable-reference-semantics", package="data.table")`](datatable-reference-semantics.html)et la [`vignette("datatable-keys-fast-subset", package="data.table")`](datatable-keys-fast-subset.html). Regardons toutes les `heures` disponibles dans le *data.table*`flights` :
223
255
224
256
```{r}
225
257
# récupère toutes les 'hours' de flights
@@ -253,7 +285,7 @@ head(ans)
253
285
254
286
### g) L'argument *mult*
255
287
256
-
Les autres arguments, y compris `mult`, fonctionnent exactement de la même manière que nous l'avons vu dans la vignette *Keys and fast binary search based subset*. La valeur par défaut de `mult` est "all". Nous pouvons choisir de ne renvoyer que les "premières" ou "dernières" lignes correspondantes.
288
+
Les autres arguments, y compris `mult`, fonctionnent exactement de la même manière que nous l'avons vu dans la [`vignette("datatable-keys-fast-subset", package="data.table")`](datatable-keys-fast-subset.html). La valeur par défaut de `mult` est "all". Nous pouvons choisir de ne renvoyer que les "premières" ou "dernières" lignes correspondantes.
257
289
258
290
#### -- Sous-ensemble contenant uniquement la première ligne correspondante où `dest` correspond à *"BOS"* et *"DAY"*
Dans la version récente, nous avons étendu l'indexation automatique aux expressions impliquant plus d'une colonne (combinées avec l'opérateur `&`). Dans le futur, nous prévoyons d'étendre la recherche binaire à d'autres opérateurs binaires comme `<`, `<=`, `>` et `>=`.
329
361
330
-
Nous aborderons les *sous-ensembles* rapides utilisant des clés et des indices secondaires pour les *joints* dans la prochaine vignette, *"Joints et jointures roulantes"*.
362
+
Nous aborderons les *sous-ensembles* rapides utilisant des clés et des indices secondaires pour les *joints* dans la [prochaine (`vignette("datatable-joins", package="data.table")`)](datatable-joins.html).
0 commit comments