[R] model.frame: object is not a matrix [solved]
Ross Boylan
ross at biostat.ucsf.edu
Fri Apr 5 20:49:21 CEST 2013
The problem was that my formula had 2 "~" in it. It also had a lot of
duplicate terms, but by themselves they don't cause trouble.
Ross
On 4/4/2013 5:30 PM, Ross Boylan wrote:
> Over a decade ago there was a problem with model.frame when the
> variable names were long:
> https://stat.ethz.ch/pipermail/r-help/2002-August/024492.html
>
> I have similar symptoms with R 2.15.3 on Windows 7:
>
> Browse[2]> x <- model.matrix(formula(myform), p$data)
> Error in model.frame.default(object, data, xlev = xlev) (from
> mice.R#601) :
> object is not a matrix
>
> My attempt at a work-around did not help:
> Browse[2]> x <- model.matrix(formula(myform), as.matrix(p$data))
> Error in model.frame.default(object, data, xlev = xlev) (from
> mice.R#601) :
> 'data' must be a data.frame, not a matrix or an array
> Browse[2]> formula(myform)
> ~educ_sg + ethnic_sg + hiv + J10 + A5 + mar_stat + orientation +
> Born_US ~ educ_sg + ethnic_sg + hiv + J10 + A5 + mar_stat +
> orientation + Born_US + (DWPAD_ActAvoid + DWPAD_EducConf +
> DWPAD_PasAvoid + DWPAD_Support) * ethnic_sg * racGayDiscStress +
> 0
>
> Notice there are many three-way interactions, which certainly will
> produce long column names.
>
> There was a suggestion in the old thread to set width= in aov, for use
> by deparse, but I'm not using aov and there are no obvious hooks to
> deparse. The level names are also long and include spaces, inequality
> signs, and periods (also "-" if it uses raw numeric values); perhaps
> that is the culprit.
>
> Any suggestions for how to diagnose or fix? This is all happening
> inside a package that is for general use, and so require recoding of
> variable and level names to something brief is not very attractive.
> However, changing these within the program might be workable.
>
> Ross Boylan
More information about the R-help
mailing list