Erreur dans la fonction eval(expr, envir, enclos) - contradiction?

Édité afin de donner davantage de exemple de code et la question spécifique

Je suis en train d'écrire une fonction pour produire des séries chronologiques des parcelles de prix des actions. Cependant, j'obtiens l'erreur suivante

Erreur dans la fonction eval(expr, envir, enclos) : l'objet "df1234' ne trouve pas

Voici un exemple de la fonction:

plot.prices <- function(df1234) {
  require(ggplot2)
  g <- ggplot(df1234, aes(x= as.Date(Date, format= "%Y-%m-%d"), y= df1234[, 3], 
              colour= brewer.pal(12,"Set3")[1])) + geom_point(size=1)
  g + geom_point(aes(x= date, y = df1234[, 4], 
                 colour= brewer.pal(12,"Set3")[2]), size=1)

  # ... code not shown...
  g
}

Et de données, par exemple:

spy <- read.csv(file= 'http://ichart.finance.yahoo.com/table.csv?s=SPY&d=11&e=1&f=2012&g=d&a=0&b=29&c=1993&ignore=.csv', header= T)

plot.prices(spy) # produces error
g <- ggplot(spy, aes(x= as.Date(Date, format= "%Y-%m-%d"), y= spy[, 3], 
              colour= brewer.pal(12,"Set3")[1])) + geom_point(size=1)
  g + geom_point(aes(x= as.Date(Date), y = spy[, 4], 
                 colour= brewer.pal(12,"Set3")[2]), size=1)
## does not produce error

Comme vous pouvez le voir, le code est identique. J'obtiens une erreur si l'appel à ggplot() est à l'INTÉRIEUR de la fonction, mais pas si l'appel à ggplot() est en DEHORS de la fonction.

Quelqu'un a une idée de pourquoi l'apparente contradiction?

Vous pourriez être intéressé par quantmod

OriginalL'auteur Alex W | 2012-12-01