MikSmith wrote:
Hi
I'm fairly new to R and am trying to analyse some large spectral datasets
using stepwise regression (fairly standard in this area). I have a field
sampled dataset, of which a proportion has been held back for validation. I
gather than step() needs to be fed a regression model and lm() can produce a
multiple regression. I had thought something like:
spectra.lm <- lm(response[,3]~spectra.spec[,2:20])
might work but lm() doesnt appear to like being fed a range of columns. I
suspect Ive missed something fairly fundamental here.....
Any help much appreciated
best wishes
mike
Hi Mike,
Indeed, functions like /lm()/ require the object fed to the /data/
argument to be either a list, a data frame or an environment containing
the variables in the model. The /formula/ argument will then refer to
column names or element names.
In your situation, I suggest you typecast your matrix into a data frame
using /as.data.frame()/. You can attribute column names by using
/colnames()/. If you have a very large number of columns and you don't
feel like giving them names individually, using the /paste()/ function
should save you a lot of time.
Also, character-type objects can be typecasted using /as.formula()/ to
formula-like objects. So, using a combination of /paste()/ and
/as.formula()/ might make your life a lot easier.
HTH,
--
*Luc Villandré*
/Biostatistician
McGill University Health Center -
Montreal Children's Hospital Research Institute/
______________________________________________
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.