[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