On Sep 8, 2010, at 7:34 AM, Philipp Kunze wrote:

Hi,
I have huge matrices in which the response variable is in the first
column and the regressors are in the other columns. What I wanted to do
now is something like this:

#this is just to get an example-matrix
DataMatrix <- rep(1,1000);
Disturbance <- rnorm(900);
DataMatrix[101:1000] <- DataMatrix[101:1000]+Disturbance;
DataMatrix <- matrix(DataMatrix,ncol=10,nrow=100);

#estimate univariate linear model with each regressor-column, response
in the first column

for(i in 2:10){
        result <- lm(DataMatrix[,1]~DataMatrix[,i])
}

result <- apply(DataMatrix[,2:10], 2, function (x) lm(DataMatrix[, 1]~x) )

Which would have the added advantage that "result" would not be overwritten for iterations 3:10, which is what your code would have done. "result" will be a list of 9 models which might be a bit unweildy, so you might consider something like

result <- apply(DataMatrix[,2:10], 2, function (x) coef( lm(DataMatrix[,1]~x) ) )
result

When you do so, you uncover a fatal flaw in your strategy, which suggests you have not even done this once on your data or simulations.

--
David.


Is there any way to get rid of the for-loop using mapply (or some other
function)?
--
David Winsemius, MD
West Hartford, CT

______________________________________________
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