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 <[email protected]> > 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 > [email protected] > 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/
_______________________________________________ R-br mailing list [email protected] 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.
