我试图在R的优秀quantmod包中使用绘图函数显示财务数据中的“差距”。
通常,R允许您使用NA值显示绘图中的间隙,如:
x<-1:10
y<-2*x
y[4:7]<-NA
plot(x,y,type="l")
我想用R / quantmod的candleChart图做类似的事情。但是,在绘图之前会删除包含NA的数据行(在chartSeries代码中有一个执行此操作的na.omit命令),所以我看不到如何执行此操作。
一个例子是:
require(quantmod)
#Make some pretend data
x<-0:30
y<-100+20*sin(x)
y.open<-y[-length(y)]
y.close<-y[-1]
val<-as.xts(cbind(y.open,y.open+5,y.close-5,y.close,1000),order.by=as.POSIXct(paste("2011-01-",x[-1],sep='')))
colnames(val)<-c("Open","High","Low","Close","Volume")
#Plot this pretend data
candleChart(val,theme="white")
#Now try and make a "gap" in the middle of the data and plot it
val2<-val
val2[5:20,]<-NA
candleChart(val2,theme="white")
这样做的“正确”方法是什么?我想我可以使用我自己的这个函数版本覆盖chartSeries(相同但没有na.omit()调用),但这看起来非常激烈。
是否有可能选择做这种事情?我一直无法谷歌任何有用的东西......
谢谢, FTTB
答案 0 :(得分:7)
答案不是使用chartSeries,而是使用更新的变体(技术上还在开发中) chart_Series 。请注意下划线。
chart_Series(val2)
如果您正在寻找有关quantmod的更多详细信息以及在财务中使用R,我们将在本月底在芝加哥举办大型会议。更多信息可以在这里找到:R/Finance 2011
希望有所帮助,并希望在芝加哥见到你!