Re: [R] anova.mlm for single model (one-way repeated measured anova)

2006-08-12 Thread Prof Brian Ripley
On Sat, 12 Aug 2006, takahashi kohske wrote:

 Dear list members:
 
 I'd like to one-way repeated measured anova by using mlm.
 I'm using R-2.3.1 and my code is:
 
 dat-matrix( c(9,7,8,8,12,11,8,13, 6,5,6,3,6,7,10,9,
10,13,8,13,12,14,14,16, 9,11,13,14,16,12,15,14),
 ncol=4, dimname=list(s=1:8, c=1:4))
 mlmfit-lm(dat~1)
 anova(mlmfit, X=~1)
 Error: ceiling(length.out) : Non-numeric argument to mathematical function
 
 this error occurs in anova.mlm
 
 if (rk  0) {
 p1 - 1:rk
 comp - object$effects[p1, ]
 asgn - object$assign[object$qr$pivot][p1]
 nmeffects - c((Intercept), attr(object$terms,
 term.labels))
 tlabels - nmeffects[1 + unique(asgn)]
  ix - split(seq(length = nrow(comp)), asgn)  #HERE
 ss - lapply(ix, function(i) crossprod(comp[i, ,
 drop = FALSE]))
 df - sapply(split(asgn, asgn), length)
 }
 
 because nrow(comp) returns NULL.
 
 in my memory, R-2.2.* ( or may be R-2.3.0) can correctly handle this code.
 so, I think this is a kind of side-effect of fixing PR#8679.
 
 currently, i can workaround as follows:
 
 anova(mlmfit, update(mlmfit, ~0), X=~1)
 
 this code returns correct answer.
 
 
 I don't know whether this behavior is correct or bug.


Yes, it is a bug.  The line

comp - object$effects[p1, ]

should be

comp - object$effects[p1, , drop=FALSE]

I am changing this in 2.3.1 patched and R-devel.


-- 
Brian D. Ripley,  [EMAIL PROTECTED]
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, UKFax:  +44 1865 272595

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


[R] anova.mlm for single model (one-way repeated measured anova)

2006-08-11 Thread takahashi kohske
Dear list members:

I'd like to one-way repeated measured anova by using mlm.
I'm using R-2.3.1 and my code is:

dat-matrix( c(9,7,8,8,12,11,8,13, 6,5,6,3,6,7,10,9,
   10,13,8,13,12,14,14,16, 9,11,13,14,16,12,15,14),
ncol=4, dimname=list(s=1:8, c=1:4))
mlmfit-lm(dat~1)
anova(mlmfit, X=~1)
Error: ceiling(length.out) : Non-numeric argument to mathematical function

this error occurs in anova.mlm

if (rk  0) {
p1 - 1:rk
comp - object$effects[p1, ]
asgn - object$assign[object$qr$pivot][p1]
nmeffects - c((Intercept), attr(object$terms,
term.labels))
tlabels - nmeffects[1 + unique(asgn)]
 ix - split(seq(length = nrow(comp)), asgn)  #HERE
ss - lapply(ix, function(i) crossprod(comp[i, ,
drop = FALSE]))
df - sapply(split(asgn, asgn), length)
}

because nrow(comp) returns NULL.

in my memory, R-2.2.* ( or may be R-2.3.0) can correctly handle this code.
so, I think this is a kind of side-effect of fixing PR#8679.

currently, i can workaround as follows:

anova(mlmfit, update(mlmfit, ~0), X=~1)

this code returns correct answer.


I don't know whether this behavior is correct or bug.
Please give me suggesion.


thanks in advance.

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.