有时候,一个函数可能会有任意数量的参数。例如,包shiny的
事实上,在R中传递给函数的参数结构(键和值)类似于
更具体地说,如果我有一个函数
例如,让我们假设
bootstrapPage
函数。如果我有一个数据框,并且想要为每一行创建一个小部件,那么我就找不到一种漂亮的方法来根据数据框的行数传递参数数量。到目前为止,我生成脚本并使用eval(parse(text="..."))
的技巧解决这个问题。事实上,在R中传递给函数的参数结构(键和值)类似于
list
,所以我想知道是否有一种方法可以将参数作为列表传递给R中的函数。更具体地说,如果我有一个函数
f
和一个列表argv
,是否有一种方法可以根据argv
的名称与f
的参数名称的匹配以及argv
中的位置与f
的参数位置来将对象传递给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
函数,使其等价于f(a=argv$a, b=argv$b, argv[[3]], argv[[4]], argv[[5]])
?
谢谢!