Tôi đang cố gắng vẽ một số điểm tôi đang lấy từ nguồn bên ngoài. Định dạng ngày do thỏa thuận tìm kiếm như thế này:Lỗi từ dữ liệu ngày biểu đồ ggplot2 - thiếu giá trị trong đó TRUE/FALSE cần
2011-08-23T17:07:05
Vì vậy, tôi phân tích nó với strptime(date, "%FT%X")
và có được một POSIXlt
. Tôi kết thúc với một khung dữ liệu hoàn chỉnh trông như thế này:
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
Với cấu trúc sau:
'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 ...
Khi tôi cố gắng vẽ dữ liệu này:
> 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' Tôi biết tôi đang làm gì sai ở đây. Tôi đã thu hẹp nó xuống ngày xử lý bằng cách thực hiện việc này:
ggplot(data=grades,
aes(seq(length(grades[,1])),
grade, color=subject)) + geom_line()
... nhưng làm cách nào để xử lý ngày chính xác?
Heh, bạn đăng hầu như những thứ cùng một lúc gần như cùng một thời điểm tôi đã làm. Tôi cảm ơn bạn nhiều vì nỗ lực của bạn, mặc dù. :) – Dustin
yep, chỉ 39 giây :) – rcs
+1 Để giải thích điều này một cách rõ ràng. Đây là lần đầu tiên tôi hiểu sự khác biệt. Nếu chỉ có điều này rõ ràng trong các tập tin trợ giúp! (Và có lẽ nó là, tôi chỉ đơn giản là không tìm thấy nó được nêu ra.) – Andrie