R中要替换的项目中的数组不是替换长度的倍数

时间:2016-04-18 11:01:46

标签: arrays r for-loop cbind

我想问一下,如何使用循环在数组中设置一个值。这样说

a<-3
b<-4
for( i in 1:5)
{
  x[i] <- cbind(a*i, b*i)
}

但我总是得到错误说:在x [i]&lt; - cbind(a * i,b * i):   要更换的项目数不是更换长度的倍数。我使用“粘贴”,但似乎不是解决方案。问题是什么 ?如果它被解决了,我可以通过使用获得价值;例如x [2] [,2]得到b * 2的值? 谢谢

2 个答案:

答案 0 :(得分:3)

你可以这样做:

a <- 3
b <- 4
i <- 1:5
x <- cbind(a*i, b*i)

答案 1 :(得分:0)

利用矩阵函数和R直接计算向量和矩阵的事实。

在你的情况下,试试这个:

outer(1:5, 3:4, FUN = "*")

     [,1] [,2]
[1,]    3    4
[2,]    6    8
[3,]    9   12
[4,]   12   16
[5,]   15   20