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
based on:
$ git diff 2f49a0d HEAD ./vignettes/datatable-keys-fast-subset.Rmd
diff --git a/vignettes/datatable-keys-fast-subset.Rmd b/vignettes/datatable-keys-fast-subset.Rmd
index d60552e..391b78d 100644
Copy file name to clipboardExpand all lines: vignettes/fr/datatable-keys-fast-subset.Rmd
+14-11Lines changed: 14 additions & 11 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,16 @@ knitr::opts_chunk$set(
24
24
.old.th = setDTthreads(1)
25
25
```
26
26
27
-
Cette vignette s'adresse à ceux qui sont déjà familiers avec la syntaxe de *data.table*, sa forme générale, comment extraire des sous-ensembles de lignes dans `i`, sélectionner et faire des opérations sur des colonnes, ajouter/modifier/supprimer des colonnes *par référence* dans `j` et grouper en utilisant `by`. Si vous n'êtes pas familier avec ces concepts, veuillez d'abord lire les vignettes *"Introduction à data.table"* et *"Sémantique de référence"*.
27
+
Cette vignette s'adresse à ceux qui sont déjà familiers avec la syntaxe de *data.table*, sa forme générale, comment extraire des sous-ensembles de lignes dans `i`, sélectionner et faire des opérations sur des colonnes, ajouter/modifier/supprimer des colonnes *par référence* dans `j` et grouper en utilisant `by`. 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"*.
36
+
Nous utiliserons les mêmes données `flights` que dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html).
34
37
35
38
```{r echo = FALSE}
36
39
options(with = 100L)
@@ -58,7 +61,7 @@ Dans cette vignette, nous allons
58
61
59
62
### a) Qu'est-ce qu'une *clé* ?
60
63
61
-
Dans la vignette *"Introduction à data.table"*, nous avons vu comment sous-diviser des lignes dans `i` en utilisant des expressions logiques, des numéros de lignes et en utilisant `order()`. Dans cette section, nous allons voir une autre façon d'extraire des sous-ensembles de façon incroyablement rapide - en utilisant les *clés*.
64
+
Dans la vignette [`vignette("datatable-intro", package="data.table")`](datatable-intro.html), nous avons vu comment sous-diviser des lignes dans `i` en utilisant des expressions logiques, des numéros de lignes et en utilisant `order()`. Dans cette section, nous allons voir une autre façon d'extraire des sous-ensembles de façon incroyablement rapide - en utilisant les *clés*.
62
65
63
66
Mais tout d'abord, commençons par examiner les *data.frames*. Tous les *data.frames* ont un attribut de noms de lignes (row names). Considérons le *data.frame*`DF` ci-dessous.
64
67
@@ -144,7 +147,7 @@ head(flights)
144
147
145
148
* Alternativement, vous pouvez passer un vecteur de caractères contenant les noms de colonnes à la fonction `setkeyv()`. Cela est particulièrement utile lors de la conception de fonctions pour passer des colonnes à définir comme clé via des arguments de fonction.
146
149
147
-
* Notez que nous n'avons pas eu besoin d'assigner le résultat à une variable. C'est parce que, comme la fonction `:=` que nous avons vue dans la vignette*"Sémantique de référence"*, `setkey()` et `setkeyv()` modifient l'entrée *data.table**par référence*. Elles renvoient le résultat de manière invisible.
150
+
* Notez que nous n'avons pas eu besoin d'assigner le résultat à une variable. C'est parce que, comme la fonction `:=` que nous avons vue dans la [`vignette("datatable-reference-semantics", package="data.table")`](datatable-reference-semantics.html), `setkey()` et `setkeyv()` modifient l'entrée *data.table**par référence*. Elles renvoient le résultat de manière invisible.
148
151
149
152
* La *data.table* est maintenant réordonnée (ou triée) par la colonne que nous avons fournie - `origin`. Comme nous réorganisons par référence, nous n'avons besoin que de la mémoire supplémentaire d'une colonne dont la longueur est égale au nombre de lignes de la *data.table*, ce qui est donc très efficace en termes de mémoire.
Tout ce que nous avons vu jusqu'à présent repose sur le même concept -- obtenir les *indices de lignes* dans `i`, mais en utilisant une méthode différente -- en utilisant des `clés`. Il n'est donc pas surprenant que nous puissions faire exactement les mêmes opérations pour `j` et `by`, comme vu dans les vignettes précédentes. Nous allons illustrer cela avec quelques exemples.
254
257
255
-
### b) Sélection dans `j`
258
+
### a) Sélection dans `j`
256
259
257
260
#### -- Renvoie la colonne `arr_delay` sous forme de *data.table* correspondant à `origin = "LGA"` et `dest = "TPA"`.
* Les *indices de ligne* correspondant à `origin == "LGA"` et `dest == "TPA"` sont obtenus à l'aide d'un *sous-ensemble basé sur une clé*.
265
268
266
-
* Une fois que nous avons les indices des lignes, nous examinons `j` qui ne nécessite que la colonne `arr_delay`. Nous sélectionnons donc simplement la colonne `arr_delay` pour ces *indices de lignes* de la même manière que nous l'avons vu dans la vignette*Introduction à data.table*.
269
+
* Une fois que nous avons les indices des lignes, nous examinons `j` qui ne nécessite que la colonne `arr_delay`. Nous sélectionnons donc simplement la colonne `arr_delay` pour ces *indices de lignes* de la même manière que nous l'avons vu dans la [`vignette("datatable-intro", package="data.table")`](datatable-intro.html).
267
270
268
271
* Nous aurions également pu renvoyer le résultat en utilisant `with = FALSE`.
### d) *sous-affectation* par référence en utilisant `:=` dans `j`
293
296
294
-
Nous avons déjà vu cet exemple dans la vignette*Sémantique de référence*. Jetons un coup d'œil à toutes les heures (`hour`) disponibles dans la *data.table*`flights` :
297
+
Nous avons déjà vu cet exemple dans la [`vignette("datatable-reference-semantics", package="data.table")`](datatable-reference-semantics.html). Jetons un coup d'œil à toutes les heures (`hour`) disponibles dans la *data.table*`flights` :
295
298
296
299
```{r}
297
300
# récupère toutes les 'hours' de flights
@@ -416,10 +419,10 @@ N = 2e7L
416
419
DT = data.table(x = sample(letters, N, TRUE),
417
420
y = sample(1000L, N, TRUE),
418
421
val = runif(N))
419
-
print(object.size(DT), units = "Mb")
422
+
print(object.size(DT), units = "Mib")
420
423
```
421
424
422
-
`DT` est de ~380Mo. Ce n'est pas vraiment énorme, mais suffisant pour illustrer le propos.
425
+
`DT` est de ~380Mio. Ce n'est pas vraiment énorme, mais suffisant pour illustrer le propos.
423
426
424
427
D'après ce que nous avons vu dans la section Introduction à data.table, nous pouvons faire un sous-ensemble des lignes où les colonnes `x = "g"` et `y = 877` comme suit :
425
428
@@ -498,7 +501,7 @@ Dans cette vignette, nous avons appris une autre méthode pour subdiviser les li
498
501
499
502
* combiner les sous-ensembles basés sur les clés avec `j` et `by`. Notez que les opérations `j` et `by` sont exactement les mêmes que précédemment.
500
503
501
-
La création de sous-ensembles basés sur les clés est **incroyablement rapide** et particulièrement utile lorsque la tâche implique de créer des *sous-ensembles de manière répété*. Cependant, il peut ne pas toujours être souhaitable de définir une clé et de réorganiser physiquement la *data.table*. Dans la prochaine vignette, nous aborderons ce problème en utilisant une *nouvelle* fonctionnalité -- les *indices secondaires*.
504
+
La création de sous-ensembles basés sur les clés est **incroyablement rapide** et particulièrement utile lorsque la tâche implique de créer des *sous-ensembles de manière répété*. Cependant, il peut ne pas toujours être souhaitable de définir une clé et de réorganiser physiquement la *data.table*. Dans la [prochaine (`vignette("datatable-secondary-indices-and-auto-indexing", package="data.table")`)](datatable-secondary-indices-and-auto-indexing.html), nous aborderons ce problème en utilisant une *nouvelle* fonctionnalité -- les *indices secondaires*.
0 commit comments