【发布时间】:2014-10-14 19:05:09
【问题描述】:
我有一个 R 函数,它通过 ... 接受命名参数和其他参数。例如:
f <- function(a, b, ...) {
mc <- as.list(match.call(expand.dots = TRUE)[-1])
### Lots of procesing on mc
return(mc)
}
因此用户可能会输入调用f(a = 3, c = 3, b = 3),它会返回此列表:
$a
[1] 3
$b
[1] 3
$c
[1] 3
但是,输出的顺序与函数输入参数的顺序不匹配。很明显为什么会这样,因为... 位于函数参数的末尾。但我想知道是否有办法保留原始排序,即使同时使用了命名和 ... 参数。所以输出列表看起来像:
$a
[1] 3
$c
[1] 3
$b
[1] 3
在我的研究中,call、match.call 或 formals 中没有任何内容允许我在这种情况下查找调用的特定输入顺序。有任何想法吗?非常感谢您的帮助。
【问题讨论】:
标签: r