2016-04-18 95 views
2

我想問一下,如何使用循環設置數組中的值。這樣說數組中R的項數要替換的不是替換長度的倍數

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

,但我總是得到錯誤說:在X [I] < - cbind(A * I,B * I): 一些項目來替代不替代長度的倍數。我使用「粘貼」,但似乎它不是解決方案。問題是什麼 ?如果解決了,我可以通過使用獲得價值;例如x [2] [,2]來得到b * 2的值? 謝謝

+0

你不應該在的R用循環使用增長數組。試着做'x = a * c(1:5)'來代替。我不確定你在代碼中究竟做了什麼。 – TheComeOnMan

回答

3

你可以這樣來做:

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

哇。從來沒有想過會這麼簡單。謝謝 ! – Elbert

+0

真是一種方便的語言! :) –

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 
+0

從來沒有使用過「外面」之前。對我來說新的知識。謝謝 – Elbert