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
[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
> 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)