[R] Still help needed on embeded regression

Guojun Zhu shmilylemon at yahoo.com
Tue May 2 04:57:56 CEST 2006


I basically has a long data.frame a.  but I only need
three columns x,y. Let us say the index of row is t. 
I need to produce new column s_t as the linear
regression coefficient of (x_(t-60),...x_(t-1)) on
(y_(t-60),...,y_(t-1)). The data is about 140,000
rows.  I wrote a simple code on this which is super
slow, it takes more than 2 hours on a 2.8Ghz Intel Duo
Core.  My friend use SAS and his code needs only
couple of minutes.  I know there must be some more
efficient way to write it.  Can anyone help me on
this?  Here is the code.  

Also one line produce a complete NA temp$y and lm
function failed on that.  How to make it just produce
a NA instead and keep runing? 

attach(return)
betat=rep(NA,length(RET))
for (i in 61:length(RET)){cat(i," ");
if (year[[i]]>=1995){

temp<-data.frame(y=RET[(i-60):(i-1)]-riskfree[(i-60):(i-1)],x=sprtrn[(i-60):(i-1)]-riskfree[(i-60):(i-1)])

betat[[i]]<-lm(y~x+1,na.action=na.exclude,temp)[[1]][[2]]
  #if (i%%100==0) 
cat(i," ");
     

return$vol.cap[[i]]=mean(VOL[(i-12):(i-1)],na.rm=TRUE)/return$cap[[i]]
}
}




More information about the R-help mailing list