我有一个这样构建的数据框
日期值变量
但是,我的数据中的日期是每季度,从2000 Q1中的.csv读入,等等。 因此,我转换日期的常规方法是:
mychart11$Date <- as.Date(mychart$Date , "%d/%m/%y")
mychart11[order(mychart$Date),]
不起作用,因为季度没有%q选项。
我知道我可以使用zoo包从数据中创建季度日期,但我需要它们在数据框中,因为我需要稍后使用ggplot使用像
之类的代码绘制日期geom_line(data=mychart, aes(Date, value, group="Date", colour="Total"),
position=position_dodge(1)) + scale_x_date(labels = date_format("%b"))
因为日期是一个因素,我收到错误消息
输入无效:date_trans仅适用于类Date的对象
非常感谢任何帮助。
答案 0 :(得分:0)
您可以使用zoo
将数据转换为类yearqtr
,然后使用as.Date()
(来自动物园包...实际上是as.Date.yearqtr()
)转换为定期约会。
mychart11$Date <- as.Date(as.yearqtr(mychar$Date),frac=0)
请注意,frac=0
将创建一个生成日期,该日期位于所述季度的开头。使用frac=1
来结束本季度。在两者之间也允许使用值,但我不认为它们会很常见。