2016-07-22 7 views
-1

Ich komme aus demselben Grund immer wieder auf dieses Problem zu sprechen, aber keine der Fragen zu SO scheint die Antwort zu haben, die ich brauche, also schreibe ich diese Frage und antworte nur für den Fall, dass es jemand anderem hilft.Warum bekomme ich immer "Fehler: ggplot2 kann nicht mit Daten der Klasse uneval umgehen"?

Situation Setup-

Ich habe eine CSV-Datei als data.frame voraus gegangen und geladen und reinigte ihn mit ein bisschen dplyr auf. Offensichtlich mit Rohren %>% der Kürze halber.

stelle ich entlang der Linien von der Datendatei mit einigen Code oben:

raw.data <- read_csv('myfile.csv') 

cleaned.data <- raw.data %>% 
    select(date, columns, I, care, about) %>% 
    filter(columns == "criteria") %>% 
    group_by(date, columns) %>% 
    summarize(analysis.value = statistic()) 

Nun, ich bin ganz bereit, eine grafische Darstellung der analysis.value gegen date und columns zu schaffen, so dass ich wechseln Gänge und bereiten ggplot benutzen. Mein Code sieht in etwa wie folgt aus:

cleaned.data %>% 
    ggplot(aes(x = date)) %>% 
    geom_line(aes(y = analysis.value, col = columns)) 

..., die ich erwarte ich ein Liniendiagramm mit date auf der x-Achse zu erzeugen, analysis.value auf der y-Achse und separate farbige Linien auf Basis von columns.

Doch anstatt ich einfach diese Nachricht bekommen:

Error: ggplot2 doesn't know how to deal with data of class uneval 

Und egal, was ich tue ich einfach diese gleiche Nachricht bekommen

Antwort

0

Es stellte sich heraus, dass, wenn ich nicht eingerichtet haben eine ggplot-Funktion in einer Weile Ich immer, immer, immer ... vergessen, dass ggplot die %>% Pipe-Zeichen nicht verwendet, um Funktionen zu ketten!

Statt %>% sollte ich + zwischen meine ggplot Funktionen setzen.

Fassen wir zusammen:

BAD

cleaned.data %>% 
    ggplot(aes(x = date)) %>% 
    geom_line(aes(y = analysis.value, col = columns)) 

GOOD

cleaned.data %>% 
    ggplot(aes(x = date)) + 
    geom_line(aes(y = analysis.value, col = columns)) 

ich immer so hektisch nur für etwa 20 Minuten suchen aufzuwickeln schließlich zu erkennen, dass ich machte den gleichen Fehler wieder .