带有函数的r-mapply,该函数将以前计算的输出作为输入

  • 本文关键字:函数 输出 计算 r-mapply r mapply
  • 更新时间 :
  • 英文 :


我不知道如何在R:中有效地做到这一点

B <- matrix(0,p,L+1)
for(jj in 1:L){
B[,jj+1] <- enet(y, X, B[,jj], lamgrid[jj+1], alpha, printitn) # enet returns a p-dim vector
}

我尝试使用mapply,但我不知道如何将最近计算的B[,jj]作为参数传递。

B[,2:] <- mapply(function(b,l)<- enet(y, X, b, l, alpha, printitn), ???, lamgrid[2:])

mapply不做这件事,它是一个广义的map。您需要的算法被称为扫描或前缀(或累积(和。不幸的是,它没有内置在R中(除了在实际和和乘积的特定情况下(,而且我也不知道有主流的包实现该操作。

不管怎样,你写的循环可能不是很优雅,但它的效率不是问题,使用扫描算法也不会提高它的效率。

最新更新