【发布时间】:2015-07-27 17:07:21
【问题描述】:
我试图通过使用apply 将用户定义的函数应用于矩阵来避免使用循环。我遇到的问题是我的函数使用了其他参数,并且它们对于矩阵的每一列都不同。下面是一个玩具示例。
假设我有以下功能:
foo <- function(x, a, b, c) return( (a*x + b)^c )
我想将其应用于矩阵bar,每列使用a、b 和c 的不同值。
bar <- matrix(1:15, ncol = 3)
a <- 4:6
b <- 3:1
c <- 1:3
在这种情况下,对于bar 的第一列,然后是a=4、b=3 和c=1。我试过了,
apply(bar, 2, foo, a=a, b=b, c=c)
但这显然是不正确的,因为每一列都会依次使用所有参数,然后再返回到第一个参数。有什么建议吗?
【问题讨论】: