2013-04-30 46 views
1

當我嘗試繪製xts中的亞秒級系列時,出現錯誤「if(on ==」years「){(from#17)中的錯誤:缺少TRUE/FALSE所需的值」。也就是說,我的XTS對象只包括相同的第二意見:是否可以在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 

關於此錯誤的一個類似的問題已經被問in this thread,但我不清楚是否有積亞秒級系列解決方法。

回答

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

爲您的系列是單變量反正工作正常。

1

這與this post的問題基本相同。一種解決方法是指定major.ticks

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

enter image description here

+0

謝謝,都很好的答案。 – 2013-04-30 16:28:04

+0

我實際上比'plot.xts'多使用'plot.zoo'。來自[xtsExtra](https://r-forge.r-project.org/R/?group_id=118)軟件包的'plot.xts'確實很酷,但它不如'plot.zoo'開發/不穩定。 – GSee 2013-04-30 16:30:16

相關問題