我在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
我真的认为这个循环的结果应该是一个向量,但我的结果只是一个数字。我做错了什么?
答案 0 :(得分:2)
是的,div<-rbind(div[i])
是错误的,根本不应该存在,因为它会覆盖您之前计算的所有数据。如果你删除它,结果可能是正确的,但你可以只执行矢量化操作而不需要循环,如下所示:
div <- a * x + c * d
这将对这4个向量的每组值进行计算;结果将是一个新的向量,其中包含您想要完成的结果。