#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. Спасибо, это отличный ответ