From: Liaw, Andy <andy_liaw_at_merck.com>

Date: Tue 28 Feb 2006 - 15:02:37 EST

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 Received on Tue Feb 28 15:14:37 2006

Date: Tue 28 Feb 2006 - 15:02:37 EST

Not sure if the following would qualify as elegant... It's easier to work
with a matrix instead of data frame:

x.mat <- data.matrix(X)

xmean <- mean(x.mat)

operator.eff <- ave(x.mat, row(x.mat)) - xmean
machine.eff <- ave(x.mat, col(x.mat)) - xmean
(predicted.x <- xmean + operator.eff + machine.eff)
resid.x <- x.mat - predicted.x

sum(resid.x^2)

You can also use aov(), but you already know that...

Andy

From: John McHenry

*>
*

> Hi All,

*>
**> I am illustrating a simple, two-way ANOVA using the
**> following data and I'm
**> having difficulty in expressing the predicted values
**> succinctly in R.
**>
**> X<- data.frame(read.table(textConnection("
**> Machine.1 Machine.2 Machine.3
**> 53 61 51
**> 47 55 51
**> 46 52 49
**> 50 58 54
**> 49 54 50"
**> ), header=TRUE))
**> rownames(X)<- paste("Operator.", 1:nrow(X), sep="")
**> print(X)
**>
**> # I'd like to know if there is a more elegant way to
**> calculate the residuals
**> # than the following, which seems to be rather a kludge.
**> If you care to read
**> # the code you'll see what I mean.
**>
**> machine.adjustment<- colMeans(X) - mean(mean(X)) #
**> length(machine.adjustment)==3
**> operator.adjustment<- rowMeans(X) - mean(mean(X)) #
**> length(operator.adjustment)==5
**> X.predicted<- numeric(0)
**> for (j in 1:ncol(X))
**> {
**> new.col<- mean(mean(X)) + operator.adjustment +
**> machine.adjustment[j]
**> X.predicted<- cbind(X.predicted, new.col)
**> }
**> print(X.predicted)
**> X.residual<- X - X.predicted
**> SS.E<- sum( X.residual^2 )
**>
**> It seems like there ought to be some way of doing that a
**> little bit cleaner ...
**>
**> Thanks,
**>
**> Jack.
**>
**>
**> ---------------------------------
**>
**> Bring photos to life! New PhotoMail makes sharing a breeze.
**> [[alternative HTML version deleted]]
**>
**> ______________________________________________
**> 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
**>
*

>

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 Received on Tue Feb 28 15:14:37 2006

*
This archive was generated by hypermail 2.1.8
: Tue 28 Feb 2006 - 18:08:51 EST
*