Muito obrigado, Walmes! Agora sim eu largo o SAS de vez.<br><br><div class="gmail_quote">Em 23 de junho de 2012 21:30, Walmes Zeviani <span dir="ltr"><<a href="mailto:walmeszeviani@gmail.com" target="_blank">walmeszeviani@gmail.com</a>></span> escreveu:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><font face="trebuchet ms,sans-serif">Na semântica de fórmulas para modelo no R os operadores são interpretados assim:<br>
<br>A+B = efeito aditivo<br>A:B = produto níveis<br>A*B = A+B+A:B = efeito simples e interações de todas as ordens<br>
(A+B)^2 = </font><font face="trebuchet ms,sans-serif">A+B+A:B = efeito simples e interações duplas<br>(A+B+C+D+E)^3 = efeitos simples e interações não maiores que 3 grau<br>A/B = A+A:B = efeito simples de A mais efeito aninhado de B por nível de A<br>

x+I(x^2) = operador I() torna x^2 literal (remove a semântica, eleva x ao quadrado)<br></font><font face="trebuchet ms,sans-serif">(A+B+C)^2-A:B = simples e duplas mas com excessão da interação A:B<br>0+A = remove o intercepto do modelo<br>

poly(x, degree=k) = polinômio ortogonal de x de grau k<br></font><font face="trebuchet ms,sans-serif">poly(x, degree=k, raw=TRUE) = polinômio cru de x de grau k<br>A*(B+C) = A*B+A*C = propriedade distributiva<br><br>Além disso podermos usar a função terms(..., keep.order=TRUE). Bem, segue esse curto CMR para ver as diferenças nas matrizes geradas. <br>

<br><span style="font-family:courier new,monospace">da <- replicate(5, gl(3,1), simplify=FALSE)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da <- data.frame(do.call(expand.grid, da))</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">names(da) <- LETTERS[1:ncol(da)]</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">da$x <- runif(nrow(da))</span><br style="font-family:courier new,monospace">

<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">formulas <- list(~A+B, ~A:B, ~A*B, ~(A+B)^2, ~(A+B+C+D+E)^3,</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">                 ~A/B, ~A/B/C, ~A/(B+C), ~A*(B+C), ~A*(B+C)^2, ~(A+B+C)^2-A:B,</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">                 ~x, ~0+A, ~-1+A, ~0+x, ~A*x, ~A:x, ~A/x, ~x+I(x^2),</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">                 ~poly(x, degree=2), ~poly(x, degree=2, raw=TRUE),</span><br style="font-family:courier new,monospace">

<span style="font-family:courier new,monospace">                 ~A+A:B+C, terms(~A+A:B+C, keep.order=TRUE))</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">names(formulas) <- apply(sapply(formulas, paste), 2, paste, collapse="")</span><br style="font-family:courier new,monospace">

<br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">X <- lapply(formulas, model.matrix, data=da)</span><br style="font-family:courier new,monospace"><span style="font-family:courier new,monospace">lapply(X, head)</span><br style="font-family:courier new,monospace">

</font><div class="HOEnZb"><div class="h5"><br><font face="trebuchet ms,sans-serif">À disposição.<br>Walmes.<br></font><font face="trebuchet ms,sans-serif"><br clear="all"></font><span style="font-family:trebuchet ms,sans-serif">==========================================================================</span><br style="font-family:trebuchet ms,sans-serif">

<span style="font-family:trebuchet ms,sans-serif">Walmes Marques Zeviani</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">LEG (Laboratório de Estatística e Geoinformação, 25.450418 S, 49.231759 W)</span><br style="font-family:trebuchet ms,sans-serif">

<span style="font-family:trebuchet ms,sans-serif">Departamento de Estatística - Universidade Federal do Paraná</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">fone: <a href="tel:%28%2B55%29%2041%203361%203573" value="+554133613573" target="_blank">(+55) 41 3361 3573</a></span><br style="font-family:trebuchet ms,sans-serif">

<span style="font-family:trebuchet ms,sans-serif">VoIP: (3361 3600) 1053 1173</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">e-mail: <a href="mailto:walmes@ufpr.br" target="_blank">walmes@ufpr.br</a></span><br style="font-family:trebuchet ms,sans-serif">

<span style="font-family:trebuchet ms,sans-serif">twitter: @walmeszeviani</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">homepage: <a href="http://www.leg.ufpr.br/%7Ewalmes" target="_blank">http://www.leg.ufpr.br/~walmes</a></span><br style="font-family:trebuchet ms,sans-serif">

<span style="font-family:trebuchet ms,sans-serif">linux user number: 531218</span><br style="font-family:trebuchet ms,sans-serif"><span style="font-family:trebuchet ms,sans-serif">==========================================================================</span><br>

</div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br>