Clone a LazyFrame
Description
This makes a very cheap deep copy/clone of an existing LazyFrame. Rarely
useful as LazyFrame
s are nearly 100% immutable. Any
modification of a LazyFrame
should lead to a clone anyways,
but this can be useful when dealing with attributes (see examples).
Usage
<LazyFrame>$clone()
Value
A polars LazyFrame
Examples
library("polars")
df1 <- as_polars_lf(iris)
# Make a function to take a LazyFrame, add an attribute, and return a LazyFrame
give_attr <- function(data) {
attr(data, "created_on") <- "2024-01-29"
data
}
df2 <- give_attr(df1)
# Problem: the original LazyFrame also gets the attribute while it shouldn't!
attributes(df1)
#> $class
#> [1] "polars_lazy_frame" "polars_object"
#>
#> $created_on
#> [1] "2024-01-29"
# Use $clone() inside the function to avoid that
give_attr <- function(data) {
data <- data$clone()
attr(data, "created_on") <- "2024-01-29"
data
}
df1 <- as_polars_lf(iris)
df2 <- give_attr(df1)
# now, the original LazyFrame doesn't get this attribute
attributes(df1)
#> $class
#> [1] "polars_lazy_frame" "polars_object"