This function creates a new function that wraps an existing function,
remapping the argument names based on a user-specified literal mapping.
Specifically, arguments passed to the new function with
names on the left-hand side of the mapping are renamed to
the corresponding right-hand side names before being passed to
the original function. Users map two arguments without x
and/or y
to
standardize the argument names, x and y, to the target function.
This function is particularly useful to parallelize functions for spatial
data outside sf
and terra
packages that do not have arguments
named x and/or y. par_*
functions could detect such functions by
wrapping nonstandardized functions to parallelize the computation.
Examples
# Define an original function that expects arguments 'group' and 'score'
original_fun <- function(group, score, home = FALSE) {
list(group = group, score = score, home = home)
}
# Create a new function that maps 'x' to 'group' and 'y' to 'score'
new_fun <- par_convert_f(original_fun, x = group, y = score)
# Call the new function using the new argument names
result <- new_fun(x = 10, y = 20)
print(result)
#> $group
#> [1] 10
#>
#> $score
#> [1] 20
#>
#> $home
#> [1] FALSE
#>