lazy_dt | 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)
# If you have a data.table, using it with any dplyr generic will
# automatically convert it to a lazy_dt object
dt <- data.table::data.table(x = 1:10, y = 10:1)
dt %>% filter(x == y)
dt %>% mutate(z = x + y)
# Note that dtplyr will avoid mutating the input data.table, so the
# previous translation includes an automatic copy(). You can avoid this
# with a manual call to lazy_dt()
dt %>%
lazy_dt(immutable = FALSE) %>%
mutate(z = x + y)
# If you have a data frame, you can use lazy_dt() to convert it to
# a data.table:
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)
# Learn more about translation in vignette("translation")
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))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.