Чтобы решить проблему, используйте ответ @Esben Friis'. Вы делаете жесткий подход к легкой проблеме.
Чтобы адресовать вопросы, которые вы имели о сообщениях об ошибках вы получили, однако:
Error in vector(, rnorm(5000, mean = 0.004546, sd = 0.00464163)) :
invalid 'length' argument
Это неправильный путь, как vector()
будет производить вектор заданной длины вместо набора значений. Вы думаете о функции as.vector()
:
as.vector(rnorm(5000, mean = 0.004546, sd = 0.00464163))
Это, однако, не требуется, так как это будет только создать новый вектор ваших ценностей, которые уже находятся в векторной структуре типа двойной. Поэтому использование этой функции ничего не изменит.
Лучше всего просто использовать:
rnorm(5000, mean=0.004546, sd=0.00464163)
Далее:
In addition: Warning message:
In while(i<N+1){: the condition has length>1 and only the first element will be used
Это предупреждение связано с i
как вектор 1:N
с длиной больше 1. Предупреждающие гласит, что только первый индекс в i
будет переработан (используется во всех экземплярах цикла), который является таким же, как и для i[1]
.
while(i<N+1){ }
#is the same as
while(i[1]<N+1){ }
Вместо этого вы хотите, чтобы петля новое значение N. Кроме того, вы можете использовать <=
(меньше или равно) оператора, а не делать <N+1
.
while(newVal<=N){ }
Этот метод принесет новые проблемы, которые могут быть решены с помощью for()
петли вместо этого, но это, однако, выходит за рамки вопроса и на самом деле не правильный подход к вашей проблеме, как указано в начало. Надеюсь, ты что-то узнал и удачи!