【发布时间】:2013-02-25 04:14:45
【问题描述】:
有时有一个函数有任意数量的参数。例如,闪亮包的bootstrapPage 函数。如果我有一个 data.frame 并且我想为一行创建一个小部件,那么我还没有找到一种根据 data.frame 的行号传递参数数量的漂亮方法。至此,我生成了脚本并使用了eval(parse(text="..."))的技巧
实际上,R中传递给函数的参数结构(键和值)类似于list,所以我想知道是否有办法将参数作为列表传递给R。
更具体地说,如果我有一个函数f和一个列表argv,有没有办法根据argv的名称和argv的名称匹配将argv中的对象传递给f f的参数名称,argv的位置和f的参数位置?
例如,让
f <- function(a, b) a + b
argv <- list(a=1, b=2)
我应该如何将argv 传递给与f(a=argv$a, b=argv$b) 等效的f?
或者如果我们有:
f <- function(a, b, ...) { # some codes }
argv <- list(a = 1, b = 2, 3, 4, 5)
我应该如何将argv 传递给等效于f(a=argv$a, b=argv$b, argv[[3]], argv[[4]], argv[[5]]) 的f?
谢谢!
【问题讨论】:
标签: r argument-passing