如何在r函数中将参数作为列表传递

SHR*_*ram 7 arguments r function

我的函数有很多参数.所以我想创建一个参数列表并将它们传递给函数.

举个例子,拿?mean函数:

mean(x, trim = 0, na.rm = FALSE, ...)

所以我想说我想计算1:10的平均值,这里是x,但是将其他参数作为列表传递:

 gm <- list (trim = 0, na.rm = FALSE)

mean(1:10, gm)
Error in mean.default(1:10, gm) : 'trim' must be numeric of length one
Run Code Online (Sandbox Code Playgroud)

我尝试使用,do.call但也没有工作.

 do.call(mean,list(1:10, gm))
Error in mean.default(1:10, list(trim = 0, na.rm = FALSE)) : 
  'trim' must be numeric of length one
Run Code Online (Sandbox Code Playgroud)

sds*_*sds 1

正如评论中所述,您的gm形状错误do.call,它将您的选项列表解释为trim参数。

要使参数形状正确,请使用c

gm <- list(trim=0, na.rm=FALSE)
do.call(mean, c(list(1:10), gm))
[1] 5.5
Run Code Online (Sandbox Code Playgroud)