Цикл в R постоянно работает неожиданно - PullRequest
0 голосов
/ 15 ноября 2018

Я пытаюсь запустить цикл, содержащий оператор while и оператор if . Код работает вне цикла, но не внутри! Это очень упрощенная версия , которая в основном пытается собрать наборы xx [j], содержащие по 10 чисел в каждом.

Когда я запускаю его, он фактически никогда не выделяет 'x' для набора xx [j], но я не уверен почему!

n <- 10
xx <- list()

for (j in 1:5) {
  xx[j] <= NULL
  while (length(xx[j]) < n) {
    x <- runif(1)
    if (0.5 <= x) {
      xx[j] <- c(xx[j], x) 
    }
  }
}

1 Ответ

0 голосов
/ 15 ноября 2018

Я исправил и отполировал код.

Изменения:

  • Доступ к элементам списка осуществляется в двойных скобках xx[[j]]
  • Список создан из целевой длины 5
  • Убрана установка элементов списка на NULL, поскольку они NULL изначально

Фиксированный код:

n = 10
xx = vector('list',5)

for (j in seq_along(xx)) {
    while(length(xx[[j]]) < n){
        x = runif(1)
        if (0.5 <= x) {
            xx[[j]] = c(xx[[j]], x) 
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...