Folks, I asked a question on this mailing list about the subset support of lm(). In a flash, I got three helpful responses from Rajarshi Guha <[EMAIL PROTECTED]> <http://jijo.cjb.net> Erin Hodgess <[EMAIL PROTECTED]> and Peter Dalgaard <[EMAIL PROTECTED]>
:-) and it was just great. The mistake I was making was in not understanding the notion of a `subset'. I was thinking that if I have 10 observations, and I want to only use observations 3,5,7, then I have to pass in a subset vector which looks like (0,0,1,0,1,0,1,0,0,0). Nowhere does it say this, but I jumped to this conclusion (it sortof looked reasonable to me). The correct thing is to just pass a vector containing 3,5,7. Examples of working code which do this are at http://www.mayin.org/ajayshah/KB/R/ols.html I tried to carry this forward into a program which does `rolling regressions', and I got stuck. I am trying to write a program where I walk over 100 obs, doing a regression of a "moving window" of 25 obs at a time. The first regression runs over 1..25, the second from 2..26, etc. I want to make a vector of 75 different slopes obtained thusly. My code is: --------------------------------------------------------------------------- A <- read.table(file="datafile.2", col.names=c("date","dlinrchf","dlusdchf","dljpychf","dldemchf")) # The file datafile.2 has 100 observations. I want window width of 25. T=100 width=25 # Embark on the loop that will do rolling windows across the dataset. # Will build up a vector `beta' (of 75 elems) in the process. for (i in 1:T-width) { model <- lm(dlinrchf ~ dlusdchf + dljpychf + dldemchf, A, i:i+25) tmp <- coefficients(model) beta[i] = tmp[2] } summary(beta) --------------------------------------------------------------------------- I get the error -- Error in "[<-"(`*tmp*`, i, value = tmp[2]) : object is not subsetable Execution halted I am quite stuck. I know for sure that the n1:n2 type notation works for supplying a set. But when I use 'i' in it, it breaks. Could you suggest what I should do? I am very new to R and so I might be missing out on very basic things. But I am unable to understand why this program does not print out the numbers from 1 to 10: for (i in 1:10) { i } Confused, -ans. -- Ajay Shah Consultant [EMAIL PROTECTED] Department of Economic Affairs http://www.mayin.org/ajayshah Ministry of Finance, New Delhi ______________________________________________ [EMAIL PROTECTED] mailing list https://www.stat.math.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html