如何对构造的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)
答案 0 :(得分:2)
对R中的函数进行矢量化的最简单方法是Vectorize
。请注意,生成的函数可能效率不高。
Av <- Vectorize(A, vectorize.args = "x")
Av(j = 3, x = seq(-2, 2))
# [1] -7 -3 0 6 28