[R] Step command failing for lm function

Noah Silverman noah at smartmediacorp.com
Mon Jan 10 10:56:10 CET 2011

I think I just figured it out.

x is a matrix.
l <- lm(y ~ x) works for generating a model, but fails.  (It considers x
as a single item to add/remove for step.)

Step does work if I use a data.frame

foo <- cbind(y,x)

l <- lm(y ~ ., data=foo)

Now step(l) works.

I guess R doesn't look at the "x" in the first version to iterate
through the different variable.  It does, however iterate when the "."
is used in a formula.

On 1/10/11 1:13 AM, Joshua Wiley wrote:
> Hi Noah,
> Are you able to reproduce the example on a smaller dataset?  Do you have any strange variable names or   I created a 30000 x 100 matrix, fit a linear model and step has been running fine (other than bringing my poor netbook to it's knees).  It also might be helpful if you could post your session info per the posting guide. 
> You could also try: debug(step). Then run step on your model so you can see what the function does before it exits.
> Cheers,
> Josh
> On Jan 9, 2011, at 23:57, Noah Silverman <noah at smartmediacorp.com> wrote:
>> Hi,
>> I have a fairly simple linear regression using the lm function.  There
>> are about 100 variables and 30,000 rows of data.  It runs fine and
>> produces a decent looking R2 value.  I'm interested in performing a
>> stepwise variable selection to see if things can be cleaned up a bit.
>> Calling the step function returns ONE iteration (all the variables) and
>> then stops.  No errors are reported.   
>> Can someone suggest why this might not be working as expected. 
>> (Normally this function steps through all the variables to find the
>> "best" combination.)
>> Thanks!
>> -N
>> ______________________________________________
>> R-help at 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.

More information about the R-help mailing list