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

标签 r function arguments

我有很多参数的函数。因此,我想创建一个参数列表并将其传递给函数。
?mean函数为例:

mean(x, trim = 0, na.rm = FALSE, ...)
因此,可以说我想计算分配给变量1:10x的平均值,但将其他参数作为列表传递:
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/

相关文章:

R 样本概率 : Default is equal weight; why does specifying equal weights cause different values to be returned?

c++ - 不能将 vector 作为参数传递 c++

c - 函数总是分配到相同的地址,并且变量不会改变

c - C 中的通用列表操作函数?

function - 将 varargin 解包为单个变量

使用 dplyr 根据另一个向量替换 NA 每列

r - 如何合并同一数据帧的几列?

r - 如何在plotly R中修复条的宽度

swift - if 可选参数的 swift 函数中的条件

database - 奥帕 : passing database as function parameters