2018年9月13日木曜日

calculate moving average --- filter(), grid.ticks.on='weeks',addEventLines()



> length(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)))
[1] 230
> class(events)
[1] "xts" "zoo"
> events
           [,1]       
2018-06-20 "natrix"   
2018-07-14 "weight"   
2018-08-09 "abort natrix"
> plot(merge(as.xts(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)),last(seq(as.Date("2018-01-01"),Sys.Date(),by='days'),n=230)),as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,2],rep(1,7))/7)),suffixes=c("high","low")),grid.ticks.on='weeks',ylim=c(50,150))
> addEventLines(events, srt=90, pos=2,col=10)
> length(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)))
[1] 230
> last(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)))
[1] 112.8571
> addSeries(as.xts(rep(112.85,len),last(index(apply.daily(bp.bangkok,mean)[,2]),len)),ylim=c(par('yaxp')[1],par('yaxp')[2]),on=1,col=4)
> last(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,2],rep(1,7))/7)))
[1] 72.92857
> addSeries(as.xts(rep(72.92,len),last(index(apply.daily(bp.bangkok,mean)[,2]),len)),ylim=c(par('yaxp')[1],par('yaxp')[2]),on=1,col=4)



len <- length(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)))
plot(merge(as.xts(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)),last(index(apply.daily(bp.bangkok,mean)[,2]),len)),as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,2],rep(1,7))/7)),suffixes=c("high","low")),grid.ticks.on='weeks',ylim=c(50,150),main="7days moving average",type='p')
events <- xts(c("natrix","weight","abort natrix"),as.Date(c("2018-06-20", "2018-07-14","2018-08-09")))
addEventLines(events, srt=90, pos=2,col=10)
addSeries(as.xts(rep(85,len),last(index(apply.daily(bp.bangkok,mean)[,2]),len)),ylim=c(par('yaxp')[1],par('yaxp')[2]),on=1,col=3)
addSeries(as.xts(rep(125,len),last(index(apply.daily(bp.bangkok,mean)[,2]),len)),ylim=c(par('yaxp')[1],par('yaxp')[2]),on=1,col=3)


plot(merge(as.xts(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7)),last(seq(as.Date("2018-01-01"),Sys.Date(),by='days'),n=length(as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,1],rep(1,7))/7))))),as.vector(na.omit(filter(apply.daily(bp.bangkok,mean)[,2],rep(1,7))/7)),suffixes=c("high","low")),grid.ticks.on='weeks',ylim=c(50,150),main="7days moving average")
addEventLines(events, srt=90, pos=2,col=10)


0 件のコメント: