Hello,

Your cbind() are wrong, they are NOT binding columns, just column.
The problem would be solved with

beta <- cbind(beta, summary(Res)$coef[, 1])

and the same for 't.value' and 'sd'.
By the way, 'sd' is a bad name for a variable, it's already an R function.

A better way of solving the problem is using combn().
See the output of

cmb <- combn(5, 3)  # matrix D has 5 cols, taken 3 at a time

Then,

nr <- NCOL(1) + NCOL(x) + NCOL(M) + NCOL(D[, cmb[, 1]])
nc <- NCOL(cmb)

beta <- t.value <- sdev <- matrix(nrow=nr, ncol=nc)
for(i in 1:nc){
        Dcols <- cmb[, i]
        Res <- lm(y ~ 1 + x + M + D[, Dcols])
        summRes <- summary(Res)$coef
        beta[, i] <- summRes[, 1]
        sdev[, i] <- summRes[, 2]
        t.value[, i] <- summRes[, 3]
}


Hope this helps,

Rui Barradas

Em 08-06-2012 10:50, D.Soudis escreveu:
  Hi R-listers,

Savings regression results after a loop is straightforward. But what about when 
you have nested loops?
I am running a regression of the form

lm(y~1+x+M+ D[,i] + D[,j] + D[,k])

where x is the variable of interest. M and D are vectors with other covariates.
Vectors "M" and "x" are included in every regression. Then i loop over the 
columns of D to use all unique combinations of
covariates in that matrix and save the results for variable "x" in each run. 
This is the code :
(due to the random numbers it will produce 10 similar betas,t.values etc...)

M<-matrix(rnorm(100),100,3)
D<-matrix(rnorm(100),100,5)
y<-matrix(rnorm(100),100,1)
x<-matrix(rnorm(100),100,1)
beta<-NULL
t.value<-NULL
sd<-NULL
i<-1
while(i<=ncol(D)){
   j<-i+1
   while(j<=ncol(D)){
     k<-j+1
     while(k<=ncol(D)){
       Res<-lm(y~1+x+M+ D[,i] + D[,j] + D[,k])
       beta<-cbind(summary(Res)$coef[2])
       t.value<-cbind(summary(Res)$coef[2,3])
       sd<-cbind(summary(Res)$coef[2,2])
       k<-k+1
     }
     j<-j+1
   }
   i<-i+1
}

If i looped over only, say k, then something like:

beta[k]<-cbind(summary(Res)$coef[2])


would have been sufficient...but what now that there are loops over i,j,k?
Maybe "while" is a bad idea??

I would appreciate your answers!

Best Regards,
Dimitrios Soudis
Ph.D. Candidate
Faculty of Economics
U. of Groningen

        [[alternative HTML version deleted]]



______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to