1

尝试在 xts 中绘制亚秒系列时,出现错误“if (on == "years") { (from #17) : missing value where TRUE/FALSE required" 错误。也就是说,我的 xts 对象仅包含同一秒的观察结果:

                         value
2013-04-23 13:09:29.0000 471295
2013-04-23 13:09:29.0000 471296
2013-04-23 13:09:29.0002 471297
2013-04-23 13:09:29.0002 471298
2013-04-23 13:09:29.0004 471299
2013-04-23 13:09:29.0004 471300
2013-04-23 13:09:29.0006 471295

在这个线程中已经提出了一个关于这个错误的类似问题,但我不清楚是否有解决方法来绘制亚秒系列。

4

2 回答 2

3
R> zzz <- xts(100+cumsum(rnorm(10)), Sys.time() + cumsum(runif(10))/1e3)
R> zzz
                               [,1]
2013-04-30 10:15:15.588007  98.9827
2013-04-30 10:15:15.588615 100.0029
2013-04-30 10:15:15.589559 100.6558
2013-04-30 10:15:15.590063  98.7353
2013-04-30 10:15:15.590466 100.0204
2013-04-30 10:15:15.590787 100.5416
2013-04-30 10:15:15.591345 100.5990
2013-04-30 10:15:15.591624 100.7908
2013-04-30 10:15:15.592415 101.8566
2013-04-30 10:15:15.592915 102.4576
R> plot(zzz)
Error in if (on == "years") { : missing value where TRUE/FALSE needed
R> traceback()
4: endpoints(x, cl, ck)
3: axTicksByTime(x, major.ticks, format.labels = major.format)
2: plot.xts(zzz)
1: plot(zzz)
R> 

所以错误来自轴格式。您可以覆盖它,通过现在要求绘制轴来抑制它,或者只是做

R> plot(as.zoo(zzz))

这很好用,因为你的系列无论如何都是单变量的。

于 2013-04-30T15:16:47.387 回答
1

这与本文中的问题基本相同。一个解决方案是指定major.ticks

> set.seed(1)
> zzz <- xts(100+cumsum(rnorm(10)), .POSIXct(0) + cumsum(runif(10))/1e3)
> plot(zzz, major.ticks="seconds")

在此处输入图像描述

于 2013-04-30T15:57:39.727 回答