Próbuję wykreślić niektóre oceny, które wyciągam z zewnętrznego źródła. Format daty przychodzi wygląda tak:Błąd z danych o wykreślaniu danych ggplot2 - brakująca wartość, gdy potrzebne jest PRAWDA/FAŁSZ
2011-08-23T17:07:05
więc analizować je z strptime(date, "%FT%X")
i uzyskać POSIXlt
. I skończyć z pełnej ramki danych, które wygląda następująco:
date subject grade
1 2011-08-23 17:07:05 AP Biology 95.83
2 2011-08-24 17:07:03 AP Biology 95.83
3 2011-08-25 17:08:27 AP Biology 95.83
4 2011-08-17 17:05:54 US History 157.14
5 2011-08-18 17:05:24 US History 157.14
6 2011-08-19 17:05:35 US History 157.14
7 2011-08-22 17:06:25 US History 157.14
8 2011-08-23 17:07:05 US History 157.14
9 2011-08-24 17:07:03 US History 157.14
10 2011-08-25 17:08:27 US History 157.14
11 2011-08-19 17:05:35 Yearbook 0.00
12 2011-08-22 17:06:25 Yearbook 0.00
13 2011-08-23 17:07:05 Yearbook 100.00
14 2011-08-24 17:07:03 Yearbook 100.00
15 2011-08-25 17:08:27 Yearbook 100.00
o następującej strukturze:
'data.frame': 15 obs. of 3 variables:
$ date : POSIXlt, format: "2011-08-23 17:07:05" "2011-08-24 17:07:03" ...
$ subject: Factor w/ 3 levels "AP Biology","US History",..: 1 1 1 2 2 2 2 ...
$ grade : num 95.8 95.8 95.8 157.1 157.1 ...
Gdy próbuję się wykreślić te dane:
> ggplot(data=grades, aes(date, grade, factor=subject)) + geom_line()
Error in if (length(range) == 1 || diff(range) == 0) { :
missing value where TRUE/FALSE needed
I don” wiesz, co robię źle tutaj. Zawęziłem to do obsługi daty, wykonując następujące czynności:
ggplot(data=grades,
aes(seq(length(grades[,1])),
grade, color=subject)) + geom_line()
... ale jak poprawnie wykonać operację daty?
Heh, to pisał niemal te same rzeczy w prawie w tym samym czasie co ja. Bardzo dziękuję za twój wysiłek. :) – Dustin
Tak, tylko 39 sekund :) – rcs
+1 Za wyjaśnienie tego tak wyraźnie. Po raz pierwszy rozumiem różnicę. Gdyby tylko było to jasne w plikach pomocy! (Być może tak jest, po prostu jeszcze tego nie znalazłem.) – Andrie