在R中,如何将列表插入到接受两个参数的函数中?

时间:2012-03-07 22:40:24

标签: r

我有一个函数f,它接受​​两个参数ab。我有一个值x的列表,我想插入a,而b是固定的。在Ruby中,我使用map,如:

 x.map {|el| f(el,3) } 

你如何在R中写这个?

3 个答案:

答案 0 :(得分:5)

已编辑:已修复参数顺序

类似lapply(x,f,b=3)(或sapply()

的内容

答案 1 :(得分:4)

根据您的功能,您有时可以直接使用它, 用矢量作为第一个参数

f <- function(a,b) a+b
f(1:10,2)

或者,如果它不起作用(如果函数假设的话) 第一个参数是单个数字,而不是矢量), 你可以矢量化它 (Vectorize只是隐藏了对lapply)的调用。

f <- Vectorize(f)
f(1:10,2)

答案 2 :(得分:3)

在这种情况下sapply工作正常(如@BenBolker回答),但mapply也是一个不错的选择,实际上是a和{{1}时的“最佳”解决方案各种各样:

b