Skip to content

Commit 55a020a

Browse files
More consolidation
1 parent 100cddc commit 55a020a

File tree

1 file changed

+2
-40
lines changed

1 file changed

+2
-40
lines changed

vignettes/datatable-joins.Rmd

Lines changed: 2 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -737,50 +737,12 @@ Add product details to `ProductPriceHistory` without copying:
737737
cols <- setdiff(names(Products), "id")
738738
ProductPriceHistory[, (cols) :=
739739
Products[.SD, on = .(id = product_id), .SD, .SDcols = cols]]
740+
setnafill(ProductPriceHistory, fill=0, cols="price") # Handle missing values
740741
```
741742

742743
- In `i`, `.SD` refers to `ProductPriceHistory`.
743744
- In `j`, `.SD` refers to `Products`.
744-
- Updates `ProductPriceHistory` by reference.
745-
746-
**Handling Edge Cases and Dynamic Column Updates**
747-
748-
To dynamically update columns and handle missing values:
749-
750-
```{r}
751-
cols <- setdiff(names(Products), "id")
752-
ProductPriceHistory[, (cols) :=
753-
Products[.SD, on = .(id = product_id), .SD, .SDcols = cols]]
754-
setnafill(ProductPriceHistory, fill=0, cols="price") # Handle missing values
755-
```
756-
757-
- Ensures unmatched values do not propagate `NA` unintentionally.
758-
759-
**Dynamic Column Selection and Updates**
760-
Columns can be dynamically updated based on variable names:
761-
762-
```{r}
763-
my_var_name <- "price"
764-
Products[ProductPriceHistory, on = .(id = product_id),
765-
(my_var_name) := i.price]
766-
```
767-
768-
- This approach allows flexibility in specifying columns programmatically.
769-
770-
**Iterating Through Multiple Columns for Updates**
771-
772-
Dynamically updating multiple columns from `ProductPriceHistory`:
773-
774-
```{r}
775-
update_cols <- intersect(c("price", "category", "stock"), names(ProductPriceHistory))
776-
for (col in update_cols) {
777-
Products[ProductPriceHistory,
778-
on = .(id = product_id),
779-
(col) := i[[col]],
780-
env = list(col = col)]}
781-
```
782-
783-
- Ensures multiple columns are updated efficiently in a loop.
745+
- `:=` and `setnafill()` both update `ProductPriceHistory` by reference.
784746

785747
## Reference
786748

0 commit comments

Comments
 (0)