R个时间系列plot.ts()(R Time Series plot.ts())

2019-10-23 20:26发布

我想在一个时间序列阅读和做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.

Answer 1:

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

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



Answer 2:

尝试这个

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



Answer 3:

在这里,我想你需要对其进行格式化正确试试这个:

salesT <- ts(sales1)

ts.plot(salesT, frequency = 4, start = c(1991, 1), end = c(1994, 4)))


Answer 4:

该生产线使次入编你想要什么这是不可能的一个:

> 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)

至于评论,如果数据看起来是这样的话,那就更简单的和下面的线会产生上述情节。 我们假定数据进行排序,并在一年的开始bginning所以我们并不需要使用第二列:

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)

更新固定。 新增回应意见。



文章来源: R Time Series plot.ts()