Skip to content

Commit ff90ec7

Browse files
authored
Update datatable-joins.Rmd #7151 rereading
corrected lines 684 653 576 448 446 275 216 184 173
1 parent 0045b72 commit ff90ec7

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

vignettes/fr/datatable-joins.Rmd

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ Products[ProductReceived,
170170
on = list(id = product_id)]
171171
```
172172

173-
- Inclure les colonnes associées dans l'alias `data.table` `list`.
173+
- Inclure les colonnes associées dans l'alias `data.table` `list` : `.`.
174174

175175
```{r, eval=FALSE}
176176
Products[ProductReceived,
@@ -181,7 +181,7 @@ Products[ProductReceived,
181181

182182
Dans tous les exemples précédents, nous avons passé le nom des colonnes à sélectionner avec l'argument `on` mais `data.table` possède également des alternatives à cette syntaxe.
183183

184-
- **Jointure naturelle** : sélectionne les colonnes pour réaliser la correspondance en fonction des noms des colonnes communes. Pour illustrer cette méthode, modifions la colonne de la table `Products` de `id` en `product_id` et utilisons le mot clé `.NATURAL`.
184+
- **Jointure naturelle** : sélectionne les colonnes pour réaliser la correspondance en fonction des noms des colonnes en commun. Pour illustrer cette méthode, modifions la colonne de la table `Products` de `id` en `product_id` et utilisons le mot clé `.NATURAL`.
185185

186186
```{r}
187187
ProductsChangedName = setnames(copy(Products), "id", "product_id")
@@ -213,7 +213,7 @@ Notre recommendation est d'utiliser la seconde alternative si possible, car elle
213213

214214
##### Gestion de la colonne partagée Names avec l'argument j
215215

216-
L'argument `j` autorise plusieurs alternatives intéressantes pour gérer les jointures avec les tables en **partageant les mêmes noms de plusieurs colonnes**. Par défaut toutes les colonnes prennent leur source dans la table `x`, mais nous pouvons aussi utiliser le préfixe `x.` pour clarifier la source et utiliser le préfixe `i.` pour toutes les colonnes de la table déclarée dans l'argument `i` de la table `x`.
216+
L'argument `j` autorise plusieurs alternatives intéressantes pour gérer les jointures avec les tables en **partageant les mêmes noms pour plusieurs colonnes**. Par défaut toutes les colonnes prennent leur source dans la table `x`, mais nous pouvons aussi utiliser le préfixe `x.` pour clarifier la source et utiliser le préfixe `i.` pour toutes les colonnes de la table déclarée dans l'argument `i` de la table `x`.
217217

218218
Si nous retournons au petit supermarché, après avoir mis à jour la table `ProductReceived` avec la table `Products` , supposez que l'on veuille appliquer les modifications suivantes :
219219

@@ -272,7 +272,7 @@ NewTax[Products, on = c("unit", "type")]
272272

273273
### 3.2. Jointure interne
274274

275-
Utilisez cette méthode pour combiner les colonnes de deux tables en se basant sur une ou plusieurs références mais ***en gardant seulement les lignes sélectionnées dans les deux tables***.
275+
Utilisez cette méthode pour combiner les colonnes de deux tables en se basant sur une ou plusieurs références mais ***en conservant seulement les lignes qui correspondent entre les deux tables***.
276276

277277
Pour réaliser cette opération il suffit d'ajouter `nomatch = NULL` ou `nomatch = 0` à l'une quelconque des opérations de jointure précédentes pour renvoyer le même résultat.
278278

@@ -443,9 +443,9 @@ ProductReceived[ProductSales,
443443
> `allow.cartesian` vaut par défaut FALSE car c'est ce que l'utilisateur a souhaité, et une telle jointure croisée peut conduire à un très grand nombre de lignes dans le résultat. Par exemple, si Table A possède 100 lignes et Table
444444
B en a 50, leur produit cartésien sera de 5000 lignes (100 * 50). Ce qui peut rapidement accroître la mémoire occupée pour de grands ensembles de données.
445445

446-
#### 3.6.1. Selection d'une correspondance
446+
#### 3.6.1. Selection d'une seule correspondance
447447

448-
Après avoir fait la jointure de la table, nous pourrions penser qu'on aurait pu utiliser une seule jointure pour extraire les informations nécessaires. Dans ce cas il y a deux alternatives :
448+
Après avoir fait la jointure de la table, nous pouvons voir que l'on peut utiliser une seule jointure pour extraire les informations nécessaires. Dans ce cas il y a deux alternatives :
449449

450450
- Nous pouvons sélectionner la **première correspondance**, représentée dans l'exemple suivant par `id = 2`.
451451

@@ -574,6 +574,7 @@ x[i, on = .(x_int >= i_int)]
574574
```
575575

576576
Remarques clé :
577+
577578
- Le nom de la colonne de sortie (`x_int`) vient de `x`, mais les valeurs viennent de `i_int` dans `i`.
578579
- La dernière ligne contient `NA` car aucune ligne de `x` ne correspond à la dernière ligne de `i` (`UPPER == "C"`).
579580
- Les lignes multiples de `x` sont renvoyées pour correspondre à la première ligne de `i` pour laquelle `UPPER == "A"`.
@@ -650,7 +651,7 @@ ProductReceived[list(c(1L, 3L), 100L),
650651
on = c("product_id", "count")]
651652
```
652653

653-
Nous voici à la fin, nous filtrons le code **ligne absente dans la table originale** renvoyé suite à la jointure. Pour éviter ce comportement il est recommandé de toujours ajouter l'argument `nomatch = NULL`.
654+
Comme à la fin nous filtrons sur la base d'une opération de jointure, le code a renvoyé une **ligne absente de la table d'origine**. Pour éviter ce comportement il est recommandé de toujours ajouter l'argument `nomatch = NULL`.
654655

655656
```{r}
656657
ProductReceived[list(c(1L, 3L), 100L),
@@ -681,7 +682,7 @@ Products[!"popcorn",
681682

682683
L'opérateur `:=` de data.table est utilisé pour modifier des colonnes par référence (c'est à dire sans recopie) lors de la jointure. Syntaxe générale : `x[i, on=, (cols) := val]`.
683684

684-
**Mise à jour Simple de un vers un**
685+
**Mise à jour Simple un à un**
685686

686687
Mise à jour de `Products` avec les prix de `ProductPriceHistory` :
687688

0 commit comments

Comments
 (0)