knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
adverbial provides new_partialised()
and new_composed()
, which extend
partial()
and compose()
functions of purrr to make it easier to extract and
replace arguments and functions, and has additional adverbial functions such as
as_step()
for step-by-step data processing.
You can install the development version of adverbial from GitHub with:
# the released version from CRAN: install.packages("adverbial") # the development version from GitHub: # install.packages("devtools") devtools::install_github("UchidaMizuki/adverbial")
library(adverbial)
new_partialised()
is an enhanced version of partial()
from purrr.
It allows you to extract and replace arguments of the function.
dist <- function(x, y) { sqrt(x ^ 2 + y ^ 2) } pdist <- new_partialised( dist, list(x = 3) ) pdist pdist(y = 4) # Get partialised arguments pdist[] pdist$x pdist$y pdist$x <- 6 pdist(y = 8) pdist$y <- 8 pdist()
new_composed()
is an enhanced version of compose()
from purrr.
It allows you to extract and replace functions in the composition.
square <- function(x) x^2 cdist <- new_composed( list( square = square, sum = sum, sqrt = sqrt ), dir = "forward" ) cdist cdist(1:10) # Get composed functions cdist[] cdist$sum <- new_partialised(sum, list(na.rm = TRUE)) cdist(c(1:10, NA))
step_by_step()
defines a step-by-step data processing pipeline by passing a
character vector with step names and descriptions.
as_step()
converts an existing function into a step function that can be used
in a pipeline.
Generated functions check if a step is correct for objects created with
step-by-step()
and act as a normal function for other objects.
With as_step(f)
(without passing a second argument) you can add another
function to step-by-step data processing.
end_step()
is a function that can be used to end the step-by-step data
processing pipeline and return the result.
# Define a step-by-step data processing pipeline dist_calculator <- step_by_step(c( square_step = "Square the input", sum_step = "Sum the squares", sqrt_step = "Take the square root" )) # Define the steps square_step <- as_step(function(x) x^2, "square_step") sum_step <- as_step(sum, "sum_step") sqrt_step <- as_step(sqrt, "sqrt_step") square_step sum_step sqrt_step dist <- dist_calculator(c(1:10, NA)) dist dist <- dist |> square_step() |> sum_step(na.rm = TRUE) |> sqrt_step() dist end_step(dist)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.