获取所有参数作为列表
R是否提供了一个对象/函数/方法/关键字来获取所有的函数参数?
使用一个例子: function(a, b="default", ...)
将在函数环境中提供a
和b
以及...
是否有类似于list(...)
的语句,在结果中也包含a
和b
?
或者换一种方式: list(a=a, b=b, ...)
的简写,给定function(a, b, ...)
我认为你想要match.call
:
tmpfun <- function(a,b,...) { print(as.list(match.call())) print(as.list(match.call(expand.dots=FALSE))) } > tmpfun(a=1, b=2, c=3, d=4) [[1]] tmpfun $a [1] 1 $b [1] 2 $c [1] 3 $d [1] 4 [[1]] tmpfun $a [1] 1 $b [1] 2 $... $...$c [1] 3 $...$d [1] 4
一个解决scheme是使用:
tempf <- function(a, b = 2, ...) { argg <- c(as.list(environment()), list(...)) print(argg) } tempf(1, c = 3) $a [1] 1 $b [1] 2 $c [1] 3
这将创build参数值的命名列表。
尝试args
function
什么是mean
function的论据?
> args(mean) function (x, ...) NULL
lm
函数怎么样?
> args(lm) function (formula, data, subset, weights, na.action, method = "qr", model = TRUE, x = FALSE, y = FALSE, qr = TRUE, singular.ok = TRUE, contrasts = NULL, offset, ...) NULL
如果你想得到一个参数列表尝试
as.list(args(lm))
我相信你正在寻找正式的:
formals(sd) $x $na.rm [1] FALSE
在这里使用dput
给你你在问题中指定的表单:
dput(formals(sd)) list(x = , na.rm = FALSE)
请注意,forms不适用于原始函数,只能closures。