1

我正在尝试阅读时间序列并执行 plot.ts(),但是我得到了奇怪的结果。也许我做错了什么。我尝试包括开始日期和结束日期,但输出仍然错误。任何帮助表示赞赏。谢谢你。

这是代码和输出:

sales1 <- read.csv("TimeS.csv",header=TRUE)
sales1

salesT <- ts(sales1)
salesT
plot.ts(salesT)

output:
> sales1 <- read.csv("TimeS.csv",header=TRUE)
> sales1

  year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4

> salesT <- ts(sales1)
> salesT

Time Series:
Start = 1 
End = 4 
Frequency = 1 
  year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4

> plot.ts(salesT)

 It looks like I can't paste the plot.  instead of 1 graph it has 5 separate    
 plots stacked onto each other.
4

4 回答 4

1

尝试这个

salesT<-ts(unlist(t(sales1[,-1])),start=c(1991,1),freq=4)

在此处输入图像描述

于 2015-07-13T17:02:05.487 回答
0

原始数据的格式很难直接用于时间序列。你可以试试这个:

sales1 <- t(sales1[,-1])
sales1 <- as.vector(sales1)
my_ts <- ts(sales1, frequency = 4, start=c(1991,1))
plot.ts(my_ts)

在此处输入图像描述

于 2015-07-13T16:50:10.850 回答
0

这条线将时代变成了您不太可能想要的系列之一:

> salesT <- ts(sales1)

我们需要转置数据帧,以便它跨行而不是向下读取,我们使用c将结果矩阵转换为形成系列数据部分的向量。(图表后续)

# create sales1
Lines <- "year  q1  q2  q3  q4
1 1991 4.8 4.1 6.0 6.5
2 1992 5.8 5.2 6.8 7.4
3 1993 6.0 5.6 7.5 7.8
4 1994 6.3 5.9 8.0 8.4"
sales1 <- read.table(text = Lines, header = TRUE)

# convert to ts and plot
salesT <- ts(c(t(sales1[-1])), start = sales1[1, 1], freq = 4)
plot(salesT)

截屏

关于评论,如果数据看起来像这样,那么它更直接,下面的行将产生上面的图。我们假设数据已排序并从一年的开头开始,因此我们不需要使用第二列:

Lines2 <- "year qtr sales
1  1991  q1   4.8
2  1991  q2   4.1
3  1991  q3   6.0
4  1991  q4   6.5
5  1992  q1   5.8
6  1992  q2   5.2
7  1992  q3   6.8
8  1992  q4   7.4
9  1993  q1   6.0
10 1993  q2   5.6
11 1993  q3   7.5
12 1993  q4   7.8
13 1994  q1   6.3
14 1994  q2   5.9
15 1994  q3   8.0
16 1994  q4   8.4"
sales2 <- read.table(text = Lines2, header = TRUE)

salesT2 <- ts(sales2$sales, start = sales2$year[1], freq = 4)
plot(salesT2)

更新已修复。添加了对评论的回复。

于 2015-07-13T16:48:49.513 回答
0

在这里我认为你需要正确格式化它试试这个:

salesT <- ts(sales1)

ts.plot(salesT, frequency = 4, start = c(1991, 1), end = c(1994, 4)))
于 2015-07-13T16:49:00.810 回答