在 R 中传入可选参数列表
Passing in list of optional arguments in R
我试图通过制作一个变量列表来简化我的代码,我可以将这些变量作为可选参数传递给函数。该函数还有其他可以直接指定的参数。例如:
foo <- function(data, ..., func = mean, cross_depth = NULL, data_table = FALSE){
what function does here}
varx <- list("var1", "var2", "var3")
foo(data, varx, func = func, data_table = TRUE, cross_depth = 3)
可选参数列表总是在变化,而且这个函数被反复使用,所以能够在函数本身之外指定这些变量会很有帮助。我尝试过以各种方式使用 do.call
,但它一直在抛出错误。非常感谢任何帮助!
我认为处理这种模式最直接的方法是为函数提供一个 extra_args
参数,该参数接受任意列表(如果您想忽略它,则默认为空列表):
foo <- function(data, extra_args = list(), func = mean,
cross_depth = NULL, data_table = FALSE) {
# Do stuff
}
允许:
varx <- list("var1", "var2", "var3")
foo(data, varx, func = func, data_table = TRUE, cross_depth = 3)
我试图通过制作一个变量列表来简化我的代码,我可以将这些变量作为可选参数传递给函数。该函数还有其他可以直接指定的参数。例如:
foo <- function(data, ..., func = mean, cross_depth = NULL, data_table = FALSE){
what function does here}
varx <- list("var1", "var2", "var3")
foo(data, varx, func = func, data_table = TRUE, cross_depth = 3)
可选参数列表总是在变化,而且这个函数被反复使用,所以能够在函数本身之外指定这些变量会很有帮助。我尝试过以各种方式使用 do.call
,但它一直在抛出错误。非常感谢任何帮助!
我认为处理这种模式最直接的方法是为函数提供一个 extra_args
参数,该参数接受任意列表(如果您想忽略它,则默认为空列表):
foo <- function(data, extra_args = list(), func = mean,
cross_depth = NULL, data_table = FALSE) {
# Do stuff
}
允许:
varx <- list("var1", "var2", "var3")
foo(data, varx, func = func, data_table = TRUE, cross_depth = 3)