повторите следующий код n раз в R

#r #statistics

#r #Статистика

Вопрос:

Всем привет, я хочу повторить код n раз,а результат x сохранить в вектор в программе R. Можете ли вы помочь написать это в R?

 xlt;-c() ilt;-1 ylt;-c() repeat {    x[i]lt;-runif(1)  i=i 1  if(sum(x)gt;1) {  break  }  }  x  

Ответ №1:

Самый простой способ сделать это-с replicate помощью . Сначала преобразуйте свой код в функцию:

 myfunction lt;- function() {  x lt;- c()  i lt;- 1  repeat {  x[i] lt;- runif(1)  i lt;- i   1  if(sum(x) gt; 1) {  return(x)  break  }  } }  

Обратите внимание, что мы должны явно вернуться x из функции. Теперь используйте replicate, чтобы запустить функцию несколько раз:

 set.seed(42) # Use for repeatability of the example results lt;- replicate(10, myfunction())  

Теперь results это список с каждым запуском в качестве отдельного элемента:

 results[[1]] # [1] 0.9148060 0.9370754 sapply(results, length) # How many elements in each run # [1] 2 2 2 3 2 2 3 2 2 2 sapply(results, sum) # What was the sum of each run # [1] 1.851881 1.116587 1.160841 1.528247 1.162807 1.653784 1.657736 1.095714 1.035330 1.042742  

Комментарии:

1. Спасибо, это отличный ответ