Olympio,

Não é possível fazer testes para níveis de Trat1 dentro de Trat2 com a formula assim ~Trat1/Trat2, isso por causa da codificação das matrizes envolvidas. Você tem que usar Trat2/Trat1, ou Tra3*Trat2 (ou inverso), ou ainda criar um novo fator combinando os níveis desses que pode ser conseguido com a interaction(). No seu caso, você deve ajustar o modelo com Trat2/Tempo/Trat1, o fator de níveis a serem comparados deve ser o último na fórmula do modelo. Se for usar a contrast::contrast() o modelo tem que ter estrutura cruzada e não aninhada. Veja,

Id: Unidade Amostral
#Estrutura dos dados:
set.seed(13032012)
d=expand.grid(Trat1=gl(3,18),Tempo=gl(2,1))
d$Trat2=gl(2,9,108)
d$Id=as.factor(rep(1:54,2))
d$Y=abs(rnorm(108,c(10,30,8),10))
str(d)

#Verificar estrutura para a unidade amostral i=3, por exemplo
d[d$Id==3,]: Tratamento1 =1, Tratamento2=1 Tempo=1, 2.

#Ajuste que fiz usando lme

library(nlme)

f=lme(Y~(Trat1/Trat2)*Tempo, random=~1|Id,d)
summary(f)

m0 <- lme(Y~Trat2/Tempo/Trat1, random=~1|Id,d)
fixef(m0)
anova(m0)

require(aod)

# 8 parâmetros = 8 g.l. da interação
grep("*.:Tempo*.:Trat1*.", names(fixef(m0)), value=TRUE)
idx <- grep("*.:Tempo*.:Trat1*.", names(fixef(m0)))

# última linha da anova(m0)
wald.test(Sigma=vcov(m0), b=fixef(m0), Terms=idx, df=nrow(d)-length(fixef(m0)))

# assim é possível fazer testes de desdobramento de interação usando a wald.test()
# é só saber que índices passar para Terms= para ter as hipóteses adequadas

require(contrast)

levels(d$Trat2)
levels(d$Trat1)
levels(d$Tempo)

c0 <- contrast(m0,
               list(Trat2="1", Tempo="1", Trat1="1"),
               list(Trat2="1", Tempo="1", Trat1="2"))

# modelo tem que estar na forma cruzada (*) e não aninhada (/)

m0 <- lme(Y~Trat2*Tempo*Trat1, random=~1|Id,d)

c0 <- contrast(m0,
               list(Trat2="1", Tempo="1", Trat1="1"),
               list(Trat2="1", Tempo="1", Trat1="2"))
c0
c0$X # vetor de contrastes

Depois é só você trocar os niveis na contrast() para demais comparações. Você pode reunir os vetores de contraste e fazer esses contrastes com a multcomp::glht() para ajustar o p-valor dos testes, visto que são muitas hipóteses não ortogonais. Consulte a documentação dessas funções. Aconselho você a sempre enviar perguntas para a R-br pois o sucesso de resposta é maior, sua dúvida pode ajudar os demais além de ficar no arquivo da lista para consulta futura.

À disposição.
Walmes.

==========================================================================
Walmes Marques Zeviani
LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)
Departamento de Estatística - Universidade Federal do Paraná
fone: (+55) 41 3361 3573
VoIP: (3361 3600) 1053 1173
e-mail: walmes@ufpr.br
twitter: @walmeszeviani
homepage: http://www.leg.ufpr.br/~walmes
linux user number: 531218
==========================================================================


2012/3/25 Olympio Neto <olympiotneto@gmail.com>
Walmes, muito obrigado por você estar sempre disponível a ajudar... Olha, eu deveria te pagar, porque já me ajudou milhares de vezes com suas intervenções.

Então, cara, eu tenho um problema. Vou colocar o que fiz aqui, usando aquele CMR que mandei.

Id: Unidade Amostral
#Estrutura dos dados:
set.seed(13032012)
d=expand.grid(Trat1=gl(3,18),Tempo=gl(2,1))
d$Trat2=gl(2,9,108)
d$Id=as.factor(rep(1:54,2))
d$Y=abs(rnorm(108,c(10,30,8),10))

#Verificar estrutura para a unidade amostral i=3, por exemplo
d[d$Id==3,]: Tratamento1 =1, Tratamento2=1 Tempo=1, 2.

#Ajuste que fiz usando lme

library(nlme)
 f=lme(Y~(Trat1/Trat2)*Tempo, random=~1|Id,d)

Veja, e "f" é meu modelo final, o melhor e tal. Acontece que quero fazer comparações múltiplas considerando somente Trat1 e Tempo, desprezando Trat2 dentro de Trat1. Estou me matando há 3 dias tentando isso e não consigo. Quando coloco Trat2, ela entra nos contrastes e não quero isso.
Queria fazer isso, mas nem sei como te mostrar, desculpe, mas vai literalmente.

Trat1:1 X Tempo:1 - Trat1:2 X Tempo:1
Trat1:1 X Tempo: 1- Trat1:3 X Tempo:1
Trat1:2 X Tempo:1 - Trat1:3 X Tempo:1

Eu vi um exemplo parecido em http://www.ats.ucla.edu/stat/R/faq/testing_contrasts.htm, mas lá cria-se um novo modelo univariado com o comando interaction nos fatores. Poderia até fazer isso, mas isso iria alterar muito meu modelo, que já é complicado. Você vislumbra alguma forma de se resolver isso? Não queria perder a caracterização do aninhamento de Trat2 dentro de Trat1. Já tentei contrast, multcomp e tudo mais, mas sempre solicitam os níveis de saliva ou se coloco, eles aumentam as comparações.

Desculpe te encher com esta dúvida idiota, mas os contrastes no R me arrebentam, e há anos. Já li um zilhão de livros do R, mas quando preciso ir às vias de fato, me mato.

Abs e muito obrigado.

Olympio