1

我是 stackoverflow 社区的新手,这是我提出的第一个问题。如果我做错了什么,请告诉我。

这是我的问题的情况。我正在处理澳大利亚的电价,我的时间序列看起来像这样。这是每 30 分钟采样一次的高频数据。

> head(t)
                     VIC   NSW   QLD SNOWY    SA
1999-01-01 00:00:00 26.84 24.29 26.52 26.20 29.87
1999-01-01 00:30:00 30.52 27.64 19.34 29.74 36.01
1999-01-01 01:00:00 28.74 26.64 17.47 28.34 35.70
1999-01-01 01:30:00 27.94 25.81 17.08 27.43 31.67
1999-01-01 02:00:00 20.90 19.94 15.84 20.86 22.42
1999-01-01 02:30:00 20.26 19.48 15.68 20.28 21.38

> tail(t)
                     VIC   NSW   QLD SNOWY    SA
2006-12-31 21:00:00 14.59 15.10 13.72 15.35 29.60
2006-12-31 21:30:00 14.77 15.42 14.12 15.61 28.79
2006-12-31 22:00:00 14.12 15.01 13.54 15.06 20.59
2006-12-31 22:30:00 15.15 16.19 15.10 16.21 17.44
2006-12-31 23:00:00 15.17 16.14 15.48 16.18 17.84
2006-12-31 23:30:00 16.96 17.14 16.37 17.63 20.20

> class(t)
[1] "xts" "zoo"

我试图得出一天中每个时间点的平均价格。所以我这样做了:

> half.hourly.means <- aggregate(t$VIC, list(format(index(t), "%H:%M")), FUN = mean)
> head(half.hourly.means)

00:00 26.99938
00:30 24.67273
01:00 21.78190
01:30 26.46662
02:00 21.27931
02:30 18.57727   

> tail(half.hourly.means)

21:00 27.86881
21:30 26.65468
22:00 23.51793
22:30 25.68527
23:00 23.26385
23:30 30.01726

> class(half.hourly.means)
[1] "zoo"

该结果是整个样本期间每个时间点的平均价格。到目前为止一切正常。但是当我尝试绘制它时,发生了错误。

> plot(half.hourly.means)
Error in plot.window(...) : need finite 'xlim' values
In addition: Warning messages:
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion
2: In min(x) : no non-missing arguments to min; returning Inf
3: In max(x) : no non-missing arguments to max; returning -Inf

当我尝试这个

> plot(as.numeric(half.hourly.means), type = "l")

(由于缺乏声誉,我未能发布图片,抱歉)

它产生正确的图,但 x 轴值无意义。所以我的问题是:如何生成上面的图表,其中 x 轴值为“00:00”、“00:30”、“01:00”……?

谢谢你的耐心!

此致,

4

0 回答 0