我有很多参数的函数。因此,我想创建一个参数列表并将其传递给函数。
以?mean
函数为例:
mean(x, trim = 0, na.rm = FALSE, ...)
因此,可以说我想计算分配给变量1:10
的x
的平均值,但将其他参数作为列表传递:gm <- list (trim = 0, na.rm = FALSE)
mean(1:10, gm)
#R> Error in mean.default(1:10, gm) : 'trim' must be numeric of length one
我尝试使用do.call
,但也不起作用。do.call(mean,list(1:10, gm))
#R> Error in mean.default(1:10, list(trim = 0, na.rm = FALSE)) :
#R> 'trim' must be numeric of length one
最佳答案
如评论中所述,您的gm
的 do.call
形状错误,它将您的选项列表解释为trim
参数。
要使参数正确成形,请使用 c
:
gm <- list(trim=0, na.rm=FALSE)
do.call(mean, c(list(1:10), gm))
[1] 5.5
关于r - 如何在R函数中将参数作为列表传递,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26269724/