Ошибка: использование стека C слишком близко к пределу

Я пытаюсь запустить довольно глубокий рекурсивный код в R, и он продолжает выдавать мне эту ошибку:

Ошибка: использование стека C слишком близко к пределу

Мой вывод изCStack_info() является:

Cstack_info()
    size    current  direction eval_depth 
67108864       8120          1          2 

У меня достаточно памяти на моей машине, я просто пытаюсь понять, как я могу увеличить CStack для R.

РЕДАКТИРОВАТЬ: Кто-то попросил воспроизводимый пример. Вот некоторый основной пример кода, который вызывает проблему. Запустив f (1,1) несколько раз, вы получите ошибку. Обратите внимание, что я уже установил --max-ppsize = 500000 и параметры (выражения = 500000), поэтому, если вы не установите их, вы можете получить ошибку об одной из этих двух вещей. Как вы можете видеть, рекурсия может пройти довольно глубоко, и я понятия не имею, как заставить ее работать последовательно. Благодарю.

f <- function(root=1,lambda=1) {
    x <- c(0,1);
    prob <- c(1/(lambda+1),lambda/(lambda+1));
        repeat {
      if(root == 0) {
        break;
      }
      else {
        child <- sample(x,2,replace=TRUE,prob);
        if(child[1] == 0 && child[2] == 0) {
          break;
        }
        if(child[1] == 1) {
          child[1] <- f(root=child[1],lambda);
        }
        if(child[2] == 1 && child[1] == 0) {
          child[2] <- f(root=child[2],lambda);
        }
      }
      if(child[1] == 0 && child[2] == 0) {
        break;
      }
      if(child[1] == 1 || child[2] == 1) {
        root <- sample(x,1,replace=TRUE,prob);
      }
        }
    return(root)
}

Ответы на вопрос(7)

Ваш ответ на вопрос