lazy_dt {dtplyr} | R Documentation |
A lazy data.table lazy captures the intent of dplyr verbs, only actually
performing computation when requested (with collect()
, pull()
,
as.data.frame()
, data.table::as.data.table()
, or tibble::as_tibble()
).
This allows dtplyr to convert dplyr verbs into as few data.table expressions
as possible, which leads to a high performance translation.
See vignette("translation")
for the details of the translation.
lazy_dt(x, name = NULL, immutable = TRUE, key_by = NULL)
x |
A data table (or something can can be coerced to a data table). |
name |
Optionally, supply a name to be used in generated expressions. For expert use only. |
immutable |
If |
key_by |
Set keys for data frame, using This uses See |
library(dplyr, warn.conflicts = FALSE) mtcars2 <- lazy_dt(mtcars) mtcars2 mtcars2 %>% select(mpg:cyl) mtcars2 %>% select(x = mpg, y = cyl) mtcars2 %>% filter(cyl == 4) %>% select(mpg) mtcars2 %>% select(mpg, cyl) %>% filter(cyl == 4) mtcars2 %>% mutate(cyl2 = cyl * 2, cyl4 = cyl2 * 2) mtcars2 %>% transmute(cyl2 = cyl * 2, vs2 = vs * 2) mtcars2 %>% filter(cyl == 8) %>% mutate(cyl2 = cyl * 2) by_cyl <- mtcars2 %>% group_by(cyl) by_cyl %>% summarise(mpg = mean(mpg)) by_cyl %>% mutate(mpg = mean(mpg)) by_cyl %>% filter(mpg < mean(mpg)) %>% summarise(hp = mean(hp))