r - 将几个参数传递给 lapply 的 FUN(以及其他 *apply)

标签 r lapply

R 中使用 lapply 时,我有一个关于将多个参数传递给函数的问题。

当我使用lapply时,语法为lapply(input, myfun); - 这很容易理解,我可以这样定义myfun:

myfun <- function(x) {
 # doing something here with x
}

lapply(input, myfun);

input 的元素作为 x 参数传递给 myfun

但是如果我需要向 myfunc 传递更多参数怎么办?例如,它的定义如下:

myfun <- function(x, arg1) {
 # doing something here with x and arg1
}

如何使用此函数传递 input 元素(作为 x 参数)和其他一些参数?

最佳答案

如果您查找帮助页面,lapply 的参数之一是神秘的 ...。当我们查看帮助页面的参数部分时,我们发现以下行:

...: optional arguments to ‘FUN’.

因此,您所要做的就是将其他参数作为参数包含在 lapply 调用中,如下所示:

lapply(input, myfun, arg1=6)

lapply 认识到 arg1 不是一个它知道如何处理的参数,会自动将其传递给 myfun。所有其他 apply 函数都可以做同样的事情。

附录:在编写自己的函数时也可以使用 ...。例如,假设您编写了一个在某个时刻调用 plot 的函数,并且您希望能够通过函数调用更改绘图参数。您可以将每个参数作为参数包含在函数中,但这很烦人。相反,您可以使用 ... (作为函数及其中对绘图的调用的参数),并将函数无法识别的任何参数自动传递给 情节

关于r - 将几个参数传递给 lapply 的 FUN(以及其他 *apply),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14427253/

相关文章:

R ggplot : Change spacing between two different legends

r - 使用 ddply 和 lapply 聚合包含 NA 的类别?

r - 将 rollapply() 和 Weighted.mean() 组合在 data.table apply() 中以用于多列

r - 将 apply 函数与 lapply 结合使用 : calculate mean of groups in df

r - Lapply to all columns in a data.frame 除了一个并替换R中的数据

r - 在 RStudio 0.99 上使用 BH 包的 Rcpp 函数中的 boost 日期出现问题

R lubridate 包安装 - 延迟加载失败

r - bookdown:自定义输出文件名

r - 如何访问包含特殊字符或空格的数据表列?

r - 如何将多个文件的列写入一个数据框中