2016-04-18 4 views
2

Я хотел бы спросить, как установить значение в массиве с помощью цикла. сказать, как этотмассив в R количество элементов для замены не кратно замещающей длины

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

, но я всегда получаю сообщение об ошибке сказав: В х [я] < - cbind (а * я, б * я): количество элементов для замены не кратна длине замены. Я использовал «пасту», но, похоже, это не решение. В чем проблема ? Если бы это было решено, могу ли я получить значение с помощью; например 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