用外循环矢量化

时间:2017-08-14 11:09:50

标签: r loops vectorization

如何对构造的R函数进行矢量化以便计算序列?

原始功能是:

A = function(j,x){
  if(x<0 & x>j){stop(print(1))}
  else{
    s=0
    for(k in 0:x){
      s = s + ((j-1) * ((2)^k) * x)
    }
  }
return(s)
}

我想添加一个外部循环,让我运行A(j,x)作为向量,其中j = 3且x = seq(-2:2)

1 个答案:

答案 0 :(得分:2)

对R中的函数进行矢量化的最简单方法是Vectorize。请注意,生成的函数可能效率不高。

Av <- Vectorize(A, vectorize.args = "x")

Av(j = 3, x = seq(-2, 2))
# [1] -7 -3  0  6 28