R 将参数作为默认参数传递给所有未命名函数参数

R 将参数作为默认参数传递给所有未命名函数参数,r,function,R,Function,将默认参数传递给函数的所有未指定参数的好方法是什么?例如,使用list.dirs有三个参数:path,full.names,和recursive。在这个例子中。我想提供path参数,然后是传递给所有剩余函数参数的默认参数(FALSE)。在本例中,简单地为剩下的两个参数指定FALSE显然没有问题,但是如果有很多参数是我想用默认值指定的呢 相当于 list.dirs(path=".", full.names = FALSE, recursive = FALSE) 但是有这样的东西(不起作用) 或者

将默认参数传递给函数的所有未指定参数的好方法是什么?例如,使用
list.dirs
有三个参数:
path
full.names
,和
recursive
。在这个例子中。我想提供path参数,然后是传递给所有剩余函数参数的默认参数(FALSE)。在本例中,简单地为剩下的两个参数指定
FALSE
显然没有问题,但是如果有很多参数是我想用默认值指定的呢

相当于

list.dirs(path=".", full.names = FALSE, recursive = FALSE)
但是有这样的东西(不起作用)

或者(也不起作用)

使用
formals()
返回参数列表,使用length()获取参数数量,使用replicate创建长度正确(减去手动设置的参数)的“默认”参数列表


我想你只是列错了清单。尝试
do.call(“list.dirs”、c(list(path=“.”)、as.list(rep(FALSE,2)))
是否要将所有参数设置为相同的值(例如FALSE)?这似乎是一种罕见的情况,但您可以使用
formals()
获得参数列表,并根据该列表的长度复制
FALSE
(可能减去您自己设置的参数数量)
do.call(“list.dirs”)、c(list(“.”)、replicate(length(formals(“list.dirs”))-1、expr=“FALSE”)
do.call("list.dirs", list(path=".", FALSE))
do.call("list.dirs", list(path=".", rep(FALSE, 2)))
do.call("list.dirs", c(list("."), replicate(length(formals("list.dirs"))-1,expr = "FALSE")))