-
我想记录默认值的来源(引用)
-
我只想定义一次值,这样就可以轻松地更新它们
-
我想把这些值作为默认值传递给几个函数
-
我想把这些值作为默认值传递给函数,这些函数有嵌套的函数,这些函数也需要参数。参数最好保持相同的名称。
# example data to work with
set.seed(123)
dat <- data.frame(x = 1:10, input = rnorm())
# first function, documented in roxygen2 style
#' Apply correction
#'
#' @importFrom magrittr `%>%`
#' @param dat Data to process.
#' @param input the column quosure of dat to apply the correction to.
#' @param factora Correction factor A to apply. Defaults to 0.3545, from \citet{Anon2018}.
#' @param factorb Correction factor B to apply. Defaults to 8.988, from \citet{Bnon2018}.
apply_correction <- function(dat, input = quo(input), factora = 0.3545, factorb = 8.988) {
dat %>%
mutate(processed = !!input * factora - factorb)
}
#' Multiple steps
#'
#' @inheritParams apply_correction
#' @inheritParams function_that_uses_factorc
multiple_steps <- function(dat, factorc = 3.421, factora = 0.3545, factorb = 8.988) {
dat %>%
mutate(step1 = input * factorc) %>%
apply_correction(quo(step1), factora = factora, factorb = factorb)
}
我考虑过创建一个环境,在其中指定所有默认值,然后将它们作为默认值从环境中获取。但我不太确定这是一个很好的做法。请帮助:)。