[R] invalid variable type in model.frame within a function

Ingmar Visser I.Visser at uva.nl
Thu Mar 23 16:27:36 CET 2006


Dear expeRts,

I came across the following error in using model.frame:

# make a data.frame
jet=data.frame(y=rnorm(10),x1=rnorm(10),x2=rnorm(10),rvar=rnorm(10))
# spec of formula
mf1=y~x1+x2
# make the model.frame
mf=model.frame(formula=mf1,data=jet,weights=rvar)

Which gives the desired output:
> mf
            y         x1         x2  (weights)
1   0.8041254  0.1815366  0.4999551  1.4957814
2  -0.2546224  1.9368141 -2.2373186  0.7579341
3   0.8627935 -0.6690416  1.3948077 -0.2107092
4   0.3951245  0.5733776 -1.2926074 -0.3289226
5  -1.4805766 -0.6113256  1.1635959  0.2300376
6  -0.7418800 -0.1610305  0.4057340 -0.2280754
7  -1.1420962 -0.9363492 -0.4811192 -0.9258711
8   0.3507427  1.8744646  1.3227931  0.5292313
9   1.4196519  0.1340283 -1.3970614 -0.7189726
10 -1.0164708 -0.2044681 -0.6825873 -0.1719102

However, doing this inside another function like this:

makemodelframe <- function(formula,data,weights) {
    mf=model.frame(formula=formula,data=data,weights=weights)
    mf
}

produces the following error:

> makemodelframe(mf1,jet,weights=rvar)
Error in model.frame(formula, rownames, variables, varnames, extras,
extranames,  : 
    invalid variable type

Searching the R-help archives I came across bug-reports about this but
couldn't figure out whehter the bug was solved or whether there are
work-arounds available.

platform:
platform powerpc-apple-darwin7.9.0
arch     powerpc   
os       darwin7.9.0
system   powerpc, darwin7.9.0
status             
major    2         
minor    2.1       
year     2005      
month    12        
day      20        
svn rev  36812     
language R  

Any hints are welcome,
Best, Ingmar




More information about the R-help mailing list