所有。我在使用ggplot2绘制时间序列时遇到问题。我对R比较陌生,不能为我的生活弄清楚为什么R不能执行我的代码。我收到以下错误:"输入无效:date_trans只使用类Date的对象"。这个错误试图告诉我究竟是什么?我之前用Google搜索过这个错误,似乎并没有解释这个错误的含义 - 只是消除错误的代码。
我在文本文件中有两列数据,我读入R.一列包含日期(例如,这种格式:8/1/10)。另一个包含我想要根据日期绘制的数值。日期是按月比例(例如,8/1 / 10,9 / 10 / 10,10 / 10/10)。
以下是我用来尝试绘制此数据的时间序列的代码(我的数据框已分配给df26
):
ggplot(df26, aes(df26$Mo_Yr, df26$Vol_Tot)) +
geom_line() +
scale_x_date(labels=date_format("%b-%y")) +
xlab("Date") +
ylab("Total Volume")
任何帮助将不胜感激!
以下是我的数据框(df26)中的一些示例数据:
Mo_Yr Vol_Tot
8/1/10 691254
9/1/10 610358
10/1/10 629178
11/1/10 569872
12/1/10 531769
1/1/11 459966
2/1/11 428976
3/1/11 555656
4/1/11 570110
5/1/11 614337
6/1/11 661598
7/1/11 717756
8/1/11 693103
9/1/11 610873
10/1/11 613217
11/1/11 564546
谢谢!
答案 0 :(得分:1)
您的Mo_Yr
列不属于Date
类。但是,更重要的是,它的格式不是R需要格式化日期的方式。 (我从上下文猜测它是M / D / Y,但R不知道那个。)
lubridate
包(您必须安装)是从格式解析日期的好方法。在你的情况下:
library(lubridate)
library(scales)
library(ggplot2)
# the important line:
df26$date <- as.Date(parse_date_time(df26$Mo_Yr, "%m/%d/%y"))
print(ggplot(df26, aes(date, Vol_Tot)) +
geom_line() +
scale_x_date(labels=date_format("%b-%y")) +
xlab("Date") +
ylab("Total Volume"))