从类因素转换为类日期时的异常日期

时间:2016-11-03 11:02:55

标签: r date ggplot2 time-series

我在ggplot的线图上绘制日期时遇到了一些问题。当我从.csv文件中读取数据时,日期看起来很好(例如2016年10月26日),但它们是因素。我在这里使用dd-mm-yyyy格式。然而,当我使用as.Date()转换为日期时,所有观察中的年份变为2020并且被反转(例如2020/10/26)。因此,绘制日期在x轴上完全无用,因为年份仅为20。

enter image description here

我在as.Date()包装器中尝试了“%d /%m /%y”的各种组合,但无济于事。

以下是在将日期变量转换为日期对象之前使用的数据示例。

date <- as.factor(c("26/10/2016","15/06/2016","19/06/2016","22/06/2016","23/06/2016"))

clinton <- c(45.8,40.0,41.0,41.7,42.0)

trump <- c(40.4,35.3,36.0,36.8,37.0)

johnson <- c(5.8,5.3,6.5,6.5,7.0)

stein <- c(1.8,3.3,4.0,4.2,4.3)

df <-  data.frame(date,clinton,trump,johnson,stein)
head(df)

我将日期转换为课程日期后的情节代码:

df$date <- as.Date(df$date,"%d/%m/%y")

df_long <- melt(df,id="date")  # convert to long format


ggplot(data=df_long,aes(x=date,y=value,colour=variable)) + 
  geom_line() +
  theme_minimal() +
  scale_colour_manual(values = c("blue","red","yellow","green")) +
  scale_y_continuous(breaks=seq(0,45,5)) +
  scale_x_date(labels = date_format("%d/%m/%Y")) +
  ylab("")

奇怪的是,在这个示例数据中,年份被绘制为2020而不是20,就像我的原始数据一样?如果不回到LibreOffice将所有日期修改为dd-mm-yy,是否有解决此问题的方法?提前谢谢。

0 个答案:

没有答案