The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
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")
::install_github("UchidaMizuki/adverbial") devtools
library(adverbial)
new_partialised()
is an enhanced version of
partial()
from purrr. It allows you to extract and replace
arguments of the function.
<- function(x, y) {
dist sqrt(x ^ 2 + y ^ 2)
}
<- new_partialised(
pdist
dist,list(x = 3)
)
pdist#> <partialised(1)>
#> function (x, y)
#> {
#> sqrt(x^2 + y^2)
#> }
#> (
#> x = 3
#> ...
#> )
pdist(y = 4)
#> [1] 5
# Get partialised arguments
pdist[]#> $x
#> [1] 3
$x
pdist#> [1] 3
$y
pdist#> NULL
$x <- 6
pdistpdist(y = 8)
#> [1] 10
$y <- 8
pdistpdist()
#> [1] 10
new_composed()
is an enhanced version of
compose()
from purrr. It allows you to extract and replace
functions in the composition.
<- function(x) x^2
square <- new_composed(
cdist list(
square = square,
sum = sum,
sqrt = sqrt
),dir = "forward"
)
cdist#> <composed(3)>
#> 1. square
#> function (x)
#> x^2
#>
#> 2. sum
#> function (..., na.rm = FALSE)
#> .Primitive("sum")(..., na.rm = na.rm)
#>
#> 3. sqrt
#> function (x)
#> .Primitive("sqrt")(x)
cdist(1:10)
#> [1] 19.62142
# Get composed functions
cdist[]#> $square
#> function (x)
#> x^2
#>
#> $sum
#> function (..., na.rm = FALSE)
#> .Primitive("sum")(..., na.rm = na.rm)
#>
#> $sqrt
#> function (x)
#> .Primitive("sqrt")(x)
$sum <- new_partialised(sum, list(na.rm = TRUE))
cdist
cdist(c(1:10, NA))
#> [1] 19.62142
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
<- step_by_step(c(
dist_calculator square_step = "Square the input",
sum_step = "Sum the squares",
sqrt_step = "Take the square root"
))
# Define the steps
<- as_step(function(x) x^2, "square_step")
square_step <- as_step(sum, "sum_step")
sum_step <- as_step(sqrt, "sqrt_step")
sqrt_step
square_step#> <step: square_step>
#> function (x)
#> x^2
sum_step#> <step: sum_step>
#> function (..., na.rm = FALSE) .Primitive("sum")
sqrt_step#> <step: sqrt_step>
#> function (x) .Primitive("sqrt")
<- dist_calculator(c(1:10, NA))
dist
dist#> # Steps:
#> # ☒ 1. square_step: Square the input
#> # ☐ 2. sum_step: Sum the squares
#> # ☐ 3. sqrt_step: Take the square root
#> # ℹ Please call `square_step()` to continue.
#> #
#> [1] 1 2 3 4 5 6 7 8 9 10 NA
<- dist |>
dist square_step() |>
sum_step(na.rm = TRUE) |>
sqrt_step()
dist#> # Steps:
#> # ☒ 1. square_step: Square the input
#> # ☒ 2. sum_step: Sum the squares
#> # ☒ 3. sqrt_step: Take the square root
#> # ℹ All steps are done. Please call `end_step()`.
#> #
#> [1] 19.62142
end_step(dist)
#> [1] 19.62142
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.