s.wood at bath.ac.uk
2009-Mar-25 17:10 UTC
[Rd] get_all_vars fails with matrices (PR#13624)
Hi, According to the help file for model.frame/get_all_vars, the following should produce the same output from both functions, but it doesn't...> dat <- list(X=matrix(1:15,5,3),z=26:30) > model.frame(~z+X,dat)z X.1 X.2 X.3 1 26 1 6 11 2 27 2 7 12 3 28 3 8 13 4 29 4 9 14 5 30 5 10 15> get_all_vars(~z+X,dat)[1] z X <NA> <NA> <0 rows> (or 0-length row.names)>-- the equivalent works ok if there are no matrices involved. I'm using R version 2.9.0 alpha (2009-03-24 r48212) (Suse linux 10 and 11, 64 bit intel). I found the problem while trying to fix a problem in an mgcv plotting routine. best, Simon --> Simon Wood, Mathematical Sciences, University of Bath, Bath, BA2 7AY UK > +44 1225 386603 www.maths.bath.ac.uk/~sw283
s.wood at bath.ac.uk wrote:> Hi, > > According to the help file for model.frame/get_all_vars, the following should > produce the same output from both functions, but it doesn't... > >> dat <- list(X=matrix(1:15,5,3),z=26:30) >> model.frame(~z+X,dat) > z X.1 X.2 X.3 > 1 26 1 6 11 > 2 27 2 7 12 > 3 28 3 8 13 > 4 29 4 9 14 > 5 30 5 10 15 >> get_all_vars(~z+X,dat) > [1] z X <NA> <NA> > <0 rows> (or 0-length row.names) >> > -- the equivalent works ok if there are no matrices involved. > > I'm using R version 2.9.0 alpha (2009-03-24 r48212) (Suse linux 10 and 11, 64 > bit intel). I found the problem while trying to fix a problem in an mgcv > plotting routine. > > best, > SimonThis works, though: > dat <- data.frame(X=I(matrix(1:15,5,3)),z=26:30) > get_all_vars(~z+X,dat) z X.1 X.2 X.3 1 26 1 6 11 2 27 2 7 12 3 28 3 8 13 4 29 4 9 14 5 30 5 10 15 but there is something special with lists: > dat <- as.data.frame(list(X=I(matrix(1:15,5,3)),z=26:30)) > get_all_vars(~z+X,dat) z X.1 X.2 X.3 1 26 1 6 11 2 27 2 7 12 3 28 3 8 13 4 29 4 9 14 5 30 5 10 15 > dat <- data.frame(list(X=I(matrix(1:15,5,3)),z=26:30)) > get_all_vars(~z+X,dat) z X.1 X.2 X.3 1 26 1 6 11 2 27 2 7 12 3 28 3 8 13 4 29 4 9 14 5 30 5 10 15 > dat <- list(X=I(matrix(1:15,5,3)),z=26:30) > get_all_vars(~z+X,dat) [1] z X <0 rows> (or 0-length row.names) > -- O__ ---- Peter Dalgaard ?ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907