我有一个函数f
,它接受两个参数a
和b
。我有一个值x
的列表,我想插入a
,而b
是固定的。在Ruby中,我使用map
,如:
x.map {|el| f(el,3) }
你如何在R中写这个?
答案 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