对于R中的循环 - 创建新的向量

时间:2015-04-20 14:24:58

标签: r vector

我在R中有另一个问题。我需要将四个向量组合成一个向量。想象一下相同长度的四个向量,我想组合如下:向量的第一个元素乘以向量b的第一个元素加上向量c的第一个元素乘以向量d的第一个元素。

以下是我的尝试:

 x<-rep(5,5)

 a<-seq(1,5,1)

 c<-rep(1,5)

 d<-rep(2,5)

 div<-NULL

 for(i in 1:5){

 div[i]<-x[i]*a[i]+c[i]*d[i]

 div<-rbind(div[i])

 }

 div

     [,1]
[1,]   27

我真的认为这个循环的结果应该是一个向量,但我的结果只是一个数字。我做错了什么?

1 个答案:

答案 0 :(得分:2)

是的,div<-rbind(div[i])是错误的,根本不应该存在,因为它会覆盖您之前计算的所有数据。如果你删除它,结果可能是正确的,但你可以只执行矢量化操作而不需要循环,如下所示:

div <- a * x + c * d

这将对这4个向量的每组值进行计算;结果将是一个新的向量,其中包含您想要完成的结果。