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-joins.Rmd
-34Lines changed: 0 additions & 34 deletions
Original file line number
Diff line number
Diff line change
@@ -194,40 +194,6 @@ Products[ProductReceived,
194
194
on = .(id = product_id)]
195
195
```
196
196
197
-
#### 3.1.2. Using Named Lists for Explicit Joins
198
-
In `data.table`, joins can be performed using unnamed lists `(list())` or named lists. Named lists provide greater clarity and reduce ambiguity when matching column names, especially when joining on multiple columns.
Copy file name to clipboardExpand all lines: vignettes/datatable-secondary-indices-and-auto-indexing.Rmd
+8-7Lines changed: 8 additions & 7 deletions
Original file line number
Diff line number
Diff line change
@@ -192,7 +192,7 @@ flights[.("JFK", "LAX"), on = c("origin", "dest")][1:5]
192
192
* Since the time to compute the secondary index is quite small, we don't have to use `setindex()`, unless, once again, the task involves repeated subsetting on the same column.
193
193
194
194
### b) Using named list elements in `i`
195
-
When subsetting using the on argument, values in `i` are typically passed as unnamed elements. However, naming elements explicitly in `i` improves readability, especially when dealing with multiple keys.
195
+
When subsetting using the `on` argument, values in `i` are typically passed as unnamed elements. However, naming elements explicitly in `i` improves readability, especially when dealing with multiple keys.
196
196
197
197
- Example: Standard subsetting using unnamed elements
198
198
```{r}
@@ -204,20 +204,21 @@ While this syntax is concise, it may not be immediately clear which value corres
204
204
```{r}
205
205
flights[.(origin = "LGA", dest = "TPA"), max(arr_delay), on = c("origin", "dest")]
206
206
```
207
-
Here, naming the elements explicitly `(origin = "LGA", dest = "TPA")`makes it clear which variable each value corresponds to. This improves code maintainability, especially in complex queries.
207
+
Naming elements explicitly `(origin = "LGA", dest = "TPA")`clarifies variable correspondence.
208
208
209
209
- Using named lists with multiple values
210
210
When multiple values are passed, named elements further enhance clarity:
211
-
```{r}
211
+
```{r unnamed_elemts}
212
212
flights[.("LGA", "JFK", "EWR"), mult = "last", on = c("origin", "dest"), nomatch = 0L]
213
213
```
214
-
- Named elements
215
-
```{r}
214
+
215
+
```{r named_elements}
216
216
flights[.(origin = c("LGA", "JFK", "EWR"), dest = "XNA"), mult = "last", on = c("origin", "dest"), nomatch = 0L]
217
217
```
218
218
- Impact of named elements on key order
219
-
It's important to note that naming elements in `i` only affects ordering when `on` is specified. If `on` is not used, data.table will match values based on key order, regardless of the names used.
220
-
219
+
```{r}
220
+
flights[.(dest = "TPA", origin = "LGA"), on = .(origin, dest)]
221
+
```
221
222
- When to use named list elements in `i`.
222
223
when working with multiple keys in `on`, as it improves readability.
0 commit comments