R - 从调用对象获取形式

时间:2011-12-19 05:21:44

标签: r

如何从调用对象中获取形式(参数)? formals()似乎只适用于函数。

1 个答案:

答案 0 :(得分:6)

好吧,一个电话不会形式,只有实际的参数......区别在于像foo <- function(x, y, ..., z=42)这样的函数可以用 调用 > foo(42, bar=13)之类的实际参数。

...但是可以这样做:

a <- call('foo', a=42, 13)
as.list(a)[-1]
#$a
#[1] 42
#
#[[2]]
#[1] 13

...另一方面,你通常(并不总是)找到实际的功能并找到它的正式:

a <- quote(which(letters=='g'))
formals(match.fun(a[[1]]))
#$x
#
#$arr.ind
#[1] FALSE
#
#$useNames
#[1] TRUE

如果无法找到该功能,您需要添加一些错误处理(与上面foo的调用一样)......