Cette question provient d'une gamme d'autres questions qui traitent essentiellement du même problème. Pour une raison étrange, l'utilisation d'une fonction dans une autre fonction échoue parfois dans le sens où les variables définies dans l'environnement local de la première fonction ne sont pas retrouvées dans la seconde fonction.Portée et fonctions dans R 2.11.1: Qu'est-ce qui ne va pas?
Le schéma classique en pseudo-code:
ff <- function(x){
y <- some_value
some_function(y)
}
ff(x)
Erreur dans eval (expr, Envir, Enclos): objet 'y' non trouvé
D'abord, je pensais qu'il avait quelque chose à voir avec les méthodes S4 et la portée, mais cela arrive aussi avec d'autres fonctions. J'ai eu une interaction avec l'équipe de développement de R, mais tout ce qu'ils ont fait, c'est de me diriger vers le site de rapport de bogue (ce qui n'est pas le plus invitant, je dois dire). Je n'ai jamais eu de commentaires. Comme le problème ne cesse de se poser, je me demande s'il y a une explication logique à cela. Est-ce une erreur commune dans tous ces cas, et si oui, laquelle? Ou est-ce vraiment un bug?
Certaines de ces questions:
- Using functions and environments
- R (statistical) scoping error using transformBy(), part of the doBy package.
- How to use acast (reshape2) within a function in R?
- Why can't I pass a dataset to a function?
- Values not being copied to the next local environment
PS: Je sais que le R-devel liste, au cas où vous vous demanderiez ...
J'aime votre solution de contournement sur celui-ci http://stackoverflow.com/questions/3742415/r-statistical-scoping-error-using-transformby-part-of-the-doby-package –
J'ai également contacté R-devel , et on m'a dit à peu près la même chose que @Richie, @Jonathan, et @hadley m'a dit. Merci à tous pour les précieuses réponses. –