gpt4 book ai didi

r - ggplot2 绘制日期数据的错误——缺少需要 TRUE/FALSE 的值

转载 作者:行者123 更新时间:2023-12-04 05:57:15 26 4
gpt4 key购买 nike

我正在尝试绘制我从外部来源获取的一些成绩。日期格式如下所示:

2011-08-23T17:07:05

所以我用 strptime(date, "%FT%X") 解析它并得到一个 POSIXlt .我最终得到一个完整的数据框,如下所示:
                  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

具有以下结构:
'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 ...

当我尝试绘制此数据时:
> 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

我不知道我在这里做错了什么。我通过这样做将范围缩小到日期处理:
ggplot(data=grades,
aes(seq(length(grades[,1])),
grade, color=subject)) + geom_line()

...但是我如何正确处理日期?

最佳答案

仅类次POSIXct ggplot2 支持。类(class)POSIXct表示自 1970 年初(在 UTC 时区)以来的(有符号)秒数作为数字向量。类(class)POSIXlt是一个命名的向量列表,表示九个元素( secminhour 等)。

您可以使用以下内容:

grades$date <- as.POSIXct(grades$date)

关于r - ggplot2 绘制日期数据的错误——缺少需要 TRUE/FALSE 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7201921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com