
Você pode usar o pacote plyr. Ele permite dividir um banco em subsets e rodar uma função para cada subset e retornar um data.frame, ou vetor, ou lista, com o resultado da função em cada subset. Mas você tem um problema estatístico de múltiplas comparações e um teste t não é o mais recomendado. Basicamente, se um p-valor de 0,05 quer dizer a probabilidade de se obter dados tão ou mais extremos do que o encontrado assumindo que a hipótese nula (de nenhuma diferença) é verdadeira, então 1 em cada 20 testes vai dar significativo, mesmo com a hipótese nula sendo verdadeira. Há várias formas de corrigir isso e se você googlar por "multiple comparisons" vai achar algo. De toda forma, o jeito mais simples de fazer o que você pediu é simplesmente: reg <- lm(tamanho ~ sexo*especie) summary(reg) Você terá uma regressão com um termo de interação entre sexo e espécie e testará o efeito de sexo para cada espécie. No exemplo que você deu, a linha abaixo faz isso: (summary(lm(tamanho ~ sexo*especie)) Nesse exemplo, sexo é significativo, bem como espécies b e c (e mrelação ao baseline de sexo feminino e espécie a). Porém, não há diferença no tamanho por sexo/espécie. abç Manoel 2013/1/29 marcelo costa <marcelokosta@yahoo.com.br>
Prezados membros,
Peço a ajuda de vocês para o seguinte problema: Eu tenho uma planilha com dois fatores (“espécie” e “sexo”) e uma variável contínua (“tamanho”). Quero analisar se existe diferença no tamanho de machos e fêmeas para cada espécie. Assim, preciso fazer um teste T para cada espécie. O problema é que eu tenho 288 espécies (uma planilha de 6638 linhas) e, portanto, fazer um subset para cada espécie não me parece uma solução muito boa (e provavelmente não é!).
Eu queria fazer um teste T para cada nível do fator "especie". Alguém tem alguma ideia de como eu poderia fazer isso sem precisar fazer um subset para cada espécie?
A princípio eu achei que isso seria fácil (e provavelmente seja), no entanto o meu pouco conhecimento sobre o R não está me ajudando.
Eu estou enviando um exemplo hipotético do formato da minha planilha:
especie<-rep(c("a","b","c"),each=6) sexo<-rep(c("f","m"), each = 3, len = 18)
tamanho<-c(1.5,1.6,1.8,1.3,1.1,1.2,2.5,2.7,2.6,2.1,2.2,2.1,3.5,3.6,3.7,3.1,3.3,3.2) data<-data.frame(especie,sexo,tamanho)
Um abraço a todos e obrigado pela atenção.
Marcelo Costa
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
-- Manoel Galdino https://sites.google.com/site/galdinomcz/