如何从调用对象中获取形式(参数)? formals()似乎只适用于函数。
答案 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
的调用一样)......