Registering custom functionality with a polars Series
Description
Registering custom functionality with a polars Series
Usage
pl_api_register_series_namespace(name, ns_fn)
Arguments
name
|
Name under which the functionality will be accessed. |
ns_fn
|
A function returns a new environment with the custom functionality. See examples for details. |
Value
NULL
invisibly.
Examples
library("polars")
# s: polars series
math_shortcuts <- function(s) {
# Create a new environment to store the methods
self <- new.env(parent = emptyenv())
# Store the series
self$`_s` <- s
# Add methods
self$square <- function() self$`_s` * self$`_s`
self$cube <- function() self$`_s` * self$`_s` * self$`_s`
# Set the class
class(self) <- c("polars_namespace_series", "polars_object")
# Return the environment
self
}
pl$api$register_series_namespace("math", math_shortcuts)
s <- as_polars_series(c(1.5, 31, 42, 64.5))
s$math$square()$rename("s^2")
#> shape: (4, 1)
#> ┌─────────┐
#> │ s^2 │
#> │ --- │
#> │ f64 │
#> ╞═════════╡
#> │ 2.25 │
#> │ 961.0 │
#> │ 1764.0 │
#> │ 4160.25 │
#> └─────────┘
#> shape: (5, 1)
#> ┌─────┐
#> │ s^3 │
#> │ --- │
#> │ i32 │
#> ╞═════╡
#> │ 1 │
#> │ 8 │
#> │ 27 │
#> │ 64 │
#> │ 125 │
#> └─────┘