在 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/