La taille de la pile utilisée par R dans les fonctions récursives semble assez petite. Dans l'exemple très simple suivant, la fonction somme() calcule la somme des n premiers entiers:
Code : Tout sélectionner
> somme <- function(n) { if (n>1) n+somme(n-1) else 1 }
> somme(1200)
[1] 720600
> somme(1300)
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
La fonction provoque une erreur au delà de 1300, ce qui est peu pour de vraies applications. Y a-t-il un moyen d'augmenter la taille de cette pile? Est-elle gérée par R ou par le système?
L'augmentation de la taille de la mémoire avec memory.limit() ne change rien, ce à quoi on pouvait s'attendre car dans l'exemple précédent la quantité de mémoire nécessaire pour empiler est manifestement très petite.
FB