得到......里面的R函数

时间:2016-01-13 13:35:00

标签: r

在R中

你可以使用" ...",例如

传递函数中的参数
myfun <- function(..., cex=0.7, mytext=1:10){
plot(...)
text(...,label=mytext)
}

有没有办法获得&#34; ...&#34;的价值?里面的功能? 假设你做了

myfun(runif(10), runif(10), cex=0.3, label=1:10)

你会得到一个错误,因为cex在text()中被设置了两次,所以很高兴从&#34; ...&#34;中提取x和y。用于文本()。 (我知道par(&#34; usr&#34;)可用于从绘图设备中获取x和y)。

1 个答案:

答案 0 :(得分:7)

有不同的方式:

最简单的方法是使用

dots = list(...)

返回参数的命名列表。但是,这会评估所有参数,虽然这通常是 你想要的东西,但有时却不是。要获得未评估的参数列表,请使用

dots = match.call(expand.dots = FALSE)$...

为了说明差异,请考虑

f = function (...) list(...)
g = function (...) match.call(expand.dots = FALSE)$...

被称为

f(2 + 2)
g(2 + 2)

结果:

[[1]]
4

[[1]]
2 + 2