Questa domanda deriva da una serie di altre domande che riguardano essenzialmente lo stesso problema. Per qualche strana ragione, l'utilizzo di una funzione all'interno di un'altra funzione a volte fallisce nel senso che le variabili definite all'interno dell'ambiente locale della prima funzione non vengono trovate nella seconda funzione.Scoping e funzioni in R 2.11.1: Cosa non funziona?
Il modello classico in pseudo-codice:
ff <- function(x){
y <- some_value
some_function(y)
}
ff(x)
Errore nei Eval (espressione, Envir, enclos): oggetto 'y' non trovato
Innanzitutto ho pensato che avesse qualcosa a che fare con i metodi S4 e l'ambito, ma succede anche con altre funzioni. Ho avuto qualche interazione con il team di sviluppo R, ma tutto ciò che hanno fatto è stato indirizzare al sito di segnalazione bug (che non è il più invitante, devo dire). Non ho mai avuto alcun feedback.
Come il problema continua a sorgere, mi chiedo se c'è una spiegazione logica per questo. È un errore comune fatto in tutti questi casi e, in tal caso, quale? O è davvero un bug?
Alcune di queste domande:
- 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: So che la R-devel list, nel caso ti stia chiedendo ...
Mi piace la soluzione alternativa su questo http://stackoverflow.com/questions/3742415/r-statistical-scoping-error-using-transformby-part-of-the-doby-package –
Ho anche contattato R-devel , e lì mi è stato detto circa lo stesso di @Richie, @ Jonathan, e @hadley mi ha detto. Grazie a tutti per le preziose risposte. –