用R绘制基本时间序列数据 - 不正确绘图

时间:2018-02-14 22:08:46

标签: r

我试图绘制一些时间序列数据。我的情节如下: Plot displaying date on y axis?

我不确定为什么它会显示日期。我在R studio中使用R Markdown。以下是我的代码:

agemployment<-read.csv("Employment-Level1.csv", header=TRUE)

试图更改日期类:     as.Date(as.character(agemployment$Date),format="%m%d%Y")

没有做任何事。其余的代码在这里:

`attach(agemployment)
 View(agemployment)
 head(agemployment)

 agemployment<-ts(agemployment,frequency=12,start=c(2008, 1))

 plot(agemployment, col="black", main="Agriculture Employment Level", 
     ylab="Total Employment Level (Thousands)", ylim=c(0, 250),lwd=2, 
     xaxs="i", yaxs="i", lty=1)'

这产生了上述情节。我不确定我做错了什么。我将不胜感激任何帮助。谢谢!

编辑:

数据:

First five entries out of 121 entries

2 个答案:

答案 0 :(得分:0)

我怀疑你的问题是由attach以某种方式驱动的,通常附加数据框不是一个好习惯。以下超简单代码对我有用:

# small dataset from your example, I use package readr to load it as data frame
df = readr::read_csv("DATE,Employment
1/1/2008,1245
2/1/2008,1280
3/1/2008,1343
4/1/2008,1251
5/1/2008,1236
6/1/2008,1265")
ts <- ts(data = df$Employment, frequency = 12, start = c(2008, 1))
plot(ts)

答案 1 :(得分:0)

使用最后注释中可重复生成的文件将文件读入动物园对象,使其成为类"yearmon"的索引(表示没有日期的年份和月份)。然后绘制它。

library(zoo)
z <- read.csv.zoo("Employment-Level1.csv", format = "%m/%d/%Y", FUN = as.yearmon)

plot(z)

library(ggplot2)
autoplot(z) + scale_x_yearmon()

(在情节之后继续)

screenshots

如果您想将z转换为ts对象或数据框:

tt <- as.ts(z)
DF <- fortify.zoo(z)

注意

Lines <- "DATE,Employment
1/1/2008,1245
2/1/2008,1280
3/1/2008,1343
4/1/2008,1251
5/1/2008,1236
6/1/2008,1265"

cat(Lines, file = "Employment-Level1.csv") # write out file

意识到通过在问题中提供图像,这意味着每个回答的人都必须重新输入您的数据,以便将来请像我们在此处一样以可复制的形式提供问题的输入数据。