(R.1.9.1; win2000)
Since it's about the tenth time I had to write an "if" around this to catch the error
...
Let's look at the line
myfit<-lm(res~groupvar,data=Data)
Here res is of numeric type and groupvar is a factor. On first sight, it would be
logical that if groupvar had only one (single) level we would get:
Error in "contrasts<-"(`*tmp*`, value = "contr.treatment") : contrasts
can be applied only to factors with 2 or more levels
But then again, it's also inconsistent: Normally redundant variables on the right of
the ~ (variables which are constant or linearly dependent on previous variables) don't
lead to "Error". They just get a "NA" as a coefficient estimate. A factor with a
single level is of this type, it is just a constant. Obviously (to me) lm (or
model.matrix.default) should not try to calculate contrasts on it and it's coefficient
should be NA. Shouldn't it?
Why is this not unimportant? Imagine you make a model of the above type for a data set
with more than one level in groupvar. Then you select subsets and refit. It shouldn't
die with error if you select a subset with only one level of groupvar.
Chris.
[[alternative HTML version deleted]]
______________________________________________
[EMAIL PROTECTED] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html