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.