我正在寻找一个宏,它从一个图复制格式并将其应用于多个其他图.
我正在努力做的是确定一种方法,允许用户设置模板图表,然后选择多个其他图表.虽然如果用户知道图表名称,可以使用组合框完成此操作,但我试图在没有他们知道图表名称的情况下执行此操作.
因此我想到有一个用户对话框,用户可以在其中选择基本图表,然后选择要应用格式的图表.就像refedit一个范围.但是,我无法弄清楚如何从用户表单中引用图表.
可以这样做,如果是这样,怎么办?
我需要在具有非标准依赖性的时间序列上运行引导程序.所以为了做到这一点,我需要创建一个通过时间调整来模拟时间序列的函数.
testing<-function(){
sampleData<-as.zoo(data.frame(index=1:1000,vol=(rnorm(1000))^2,x=NA))
sampleData[,"x"]<-sampleData[,"vol"]+rnorm(1000) #treat this is completely exognenous and unknown in connection to vol
sampleData<-cbind(sampleData,mean=rollmean(sampleData[,"vol"],k=3,align="right"))
sampleData<-cbind(sampleData,vol1=lag(sampleData[,"vol"],k=-1),x1=lag(sampleData[,"x"],k=-1),mean1=lag(sampleData[,"mean"],k=-1))
#get estimate
mod<-lm(vol~vol1+x1+mean1,data=sampleData)
res<-mod$residuals
for(i in 5:1000){
#recursively estimate
sampleData[i,"vol"]<-as.numeric(predict(mod,newdata=data.frame(sampleData[i-1,])))+res[i-3]
#now must update other paramaters
#first our rolled average
sampleData[i,"mean"]<-mean(sampleData[(i-3):i,"vol"])
#reupdate our lagged variables
sampleData[i,"vol1"]<-sampleData[i-1,"vol"]
sampleData[i,"mean1"]<-sampleData[i-1,"mean"]
}
lm(vol~vol1+x1+mean1,data=sampleData)
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码并测量运行时间时
system.time(testing())
user system elapsed
2.711 0.201 2.915
Run Code Online (Sandbox Code Playgroud)
这对我来说是一个小问题,因为将集成此代码来构建引导程序.这意味着每个步骤的任何时间乘以约100.而我正在更新这几千次.这意味着单次运行需要数小时(到几天)才能运行.
反正加速这段代码了吗?
亲切的问候,
马修