Выполнение кода 1000 раз и сохранение его в векторе R. - PullRequest
0 голосов
/ 27 мая 2020

У меня есть код, который имитирует количество поворотов, сделанных до тех пор, пока из мешка не будет извлечен первый красный шар (изначально в мешке 1 красный и 1 синий шар, и после каждого поворота мяч возвращается с тем же цветом. после n ходов в сумке оказывается n + 2 шара).

k = 0
success = FALSE
while (success == FALSE) {
  k = k + 1
  if (rgeom(n, 1/(n+1)) == 1) success = TRUE
}
k

Теперь я хочу запустить этот код 1000 раз, поместив этот l oop в другой l oop, который запускается 1000 раз и сохраните результаты в векторе R с именем x. Я попытался поместить что-то вроде x [i] = n в конец i-го l oop и написал for (i in 1: 1000) в начале приведенного выше кода, но на самом деле ничего не работает. Какие-нибудь советы?

Ответы [ 3 ]

3 голосов
/ 27 мая 2020

Я считаю, что следующее моделирование проблемы, описанной в вопросе.

set.seed(1234)    # Make the results reproducible

result <- replicate(1000, {
  k <- 0
  success <- FALSE
  while(!success) {
    success <- rgeom(1, 1/(k + 2)) == 1
    k <- k + 1
  }
  k
})
barplot(table(result))
3 голосов
/ 27 мая 2020
result <- replicate(1000, {
  k = 0
  success = FALSE
  while (success == FALSE) {
    k = k + 1
    if (rgeom(1, 1/(n+1)) == 1) success = TRUE
  }
  k
})
2 голосов
/ 27 мая 2020

У меня есть еще один:

result <- sapply(1:1000, 
                 function(x) {   
                   k = 0
                   success = FALSE
                   while (success == FALSE) {
                     k = k + 1
                     if (rgeom(n, 1/(n+1)) == 1) success = TRUE
                   }
                   return(k)
                 })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...