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
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas si c'est ce que vous voulez, mais ça pourrait aider. J'ai modifié agstudy code:
Voici le code sans l'aide de
brewer.pal
:OriginalL'auteur Mark Miller
L'erreur se produire parce que vous utilisez df[, 7] en gglpot2, utilisez la colonne nom Adj Fermer résoudre le problème.
En fait l'erreur , c'est une erreur de délimitation de l'étendue. aes ne pouvez pas trouver le df de l'environnement. Il essaie de chercher la portée globale .
si vous vous voulez utiliser l'indexation des appels , vous pouvez utiliser aes_string par exemple , et de manipuler des chaînes de caractères non des expressions
J'y ai ajouté ma solution pour l'indexation
J'ai édité mon problème de donner davantage de exemple de l'erreur. Peut-être le problème, c'est l'ajout de la couleur= brasseur.pal(...)
Où avez-vous brewer.pal? Est-il dans le " RColorBrewer d'un paquet?
avant d'essayer de faire parcelles complexes avec ggplot2 essayer de comprendre les principes de base : l'esthétique de la cartographie et de la portée lexicale.
OriginalL'auteur agstudy