Заполните строки матрицы, выполняя цикл по вектору, где интервал цикла больше 1 - PullRequest
0 голосов
/ 18 апреля 2019

Я пытаюсь заполнить матрицу через цикл. Задан вектор значений и пустая матрица;

n <- c(seq(10,100,10))
out <- matrix(ncol=1, nrow=length(n))

запуск этого простого цикла в качестве примера;

for(i in n){
  dostuff <- i*2
  out[i,1] <- dostuff
}

выдает сообщение об ошибке

Error in [<- <code>( TMP , i, 1, value = dostuff) : subscript out of bounds

, поскольку интервал в векторе, на котором основан цикл, больше 1 и поэтому не соответствует индексу 1:10 строк матрицы. Удаление i из индекса строки out повторяет только результат последней итерации:

for(i in n){
  dostuff <- i*2
  out[,1] <- dostuff
  }

Очевидно, что в петлях есть нечто фундаментальное, чего я не понимаю. Я посмотрел, например, здесь и здесь , но не смогли найти хорошего решения. Вот результат, который я ищу:

      [,1]
 [1,]   20
 [2,]   40
 [3,]   60
 [4,]   80
 [5,]  100
 [6,]  120
 [7,]  140
 [8,]  160
 [9,]  180
[10,]  200
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...