Thank you for the report -- but a bit more investigation of the root cause would have been even more helpful: this is not 'model.frame error', nor even reported by R as such.

The issue was that complete.cases() did not know how to find the number of rows of a 0-column data frame (it knew nothing about data frames). That has been changed in R-patched and R-devel, together with a more informative error message in other cases where the number of rows is unspecified.

On Sun, 15 Nov 2009, sebastian.wastl.me...@campus.lmu.de wrote:

Full_Name: Sebastian Meyer
Version: 2.10.0
OS: x86_64-pc-linux-gnu
Submission from: (NULL) (77.135.124.96)


When using model.frame (model.frame.default) on an intercept-only model and with
na.action=na.fail SPECIFIED, i.e.

  data(iris)

That line is unnecessary: 'iris' is a visible object in package 'datasets'.

  model.frame( ~ 1, data = iris, na.action = na.fail)

one gets the following error:

  Error in complete.cases(object) : negative length vectors are not allowed

There is no error if the na.action argument is left UNSPECIFIED (though the
default value also is na.fail!):

  model.frame( ~ 1, data = iris)

In either case, there should be no error. Specifing other na.action functions
(na.omit, na.pass, na.exclude) works.
If there is at least one (non-intercept) variable in the formula, e.g.

  model.frame( ~ 1 + Species, data = iris, na.action = na.fail)

there is obviously no issue.

Best regards,
   Sebastian Meyer

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


--
Brian D. Ripley,                  rip...@stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to