使用库“fpp”和对象“elecequip”。见下面的代码。为什么数据不会在出口上显示月份和年份?什么“类型”的对象是“elecequip”,我如何得到这些数据的月份和年份?
fit <- stl(elecequip, s.window=5)
plot(elecequip, col="gray", main="Electrical equipment manufacturing",
ylab="New orders index", xlab="")
lines(fit$time.series[,2],col="red",ylab="Trend")
write.table(elecequip, "ELECT DATA.txt", sep="\t")
输出在前两年的数据中看起来像这样:
"x"
"1" 79.43
"2" 75.86
"3" 86.4
"4" 72.67
"5" 74.93
"6" 83.88
"7" 79.88
"8" 62.47
"9" 85.5
"10" 83.19
"11" 84.29
"12" 89.79
"13" 78.72
"14" 77.49
"15" 89.94
"16" 81.35
"17" 78.76
"18" 89.59
"19" 83.75
"20" 69.87
"21" 91.18
"22" 89.52
"23" 91.12
"24" 92.97
答案 0 :(得分:3)
这是一个时间序列数据。
> class(elecequip)
[1] "ts"
> str(elecequip)
Time-Series [1:191] from 1996 to 2012: 79.4 75.9 86.4 72.7 74.9 ...
可能有更好的方法将打印输出保存为平面表(我认为这是你之后的事情),但sink
似乎有效。
sink(file = "test.txt")
print(elecequip)
sink()
test.txt
文件的负责人:
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1996 79.43 75.86 86.40 72.67 74.93 83.88 79.88 62.47 85.50 83.19 84.29 89.79
1997 78.72 77.49 89.94 81.35 78.76 89.59 83.75 69.87 91.18 89.52 91.12 92.97
1998 81.97 85.26 93.09 81.19 85.74 91.24 83.56 66.45 93.45 86.03 86.91 93.42
1999 81.68 81.68 91.35 79.55 87.08 96.71 98.10 79.22 103.68 101.00 99.52 111.94
2000 95.42 98.49 116.37 101.09 104.20 114.79 107.75 96.23 123.65 116.24 117.00 128.75
答案 1 :(得分:1)
这有点像黑客,但是(删除了stats:::print.ts
的必要部分):
library("fpp")
pp <- .preformat.ts(elecequip,TRUE)
storage.mode(pp) <- "numeric"
pp <- as.data.frame(pp)
如果你想要长格式(当然除了Hadleyverse 2之外还有办法做到这一点):
library("tidyr")
library("dplyr")
pp %>% add_rownames("year") %>% gather(month,value,-year)