[R-br] rodar função para cada nível de um fator

marcelo costa marcelokosta em yahoo.com.br
Terça Janeiro 29 20:05:57 BRST 2013


Obrigado Manoel,

Consegui resolver o problema com as funções do pacote plyr
que você indicou. Obrigado pelas observações em relação às comparações múltiplas
(vou cuidar disso).

Abraço.

 
Marcelo Costa


________________________________


Laboratório de Dinâmicas Ecológicas
Programa de Pós-graduação em Entomologia - Doutorado 
Departamento de Zoologia 
Universidade Federal do Paraná - UFPR 
Jardim das Américas, Curitiba, Paraná - Brasil 
Caixa Postal 19020, CEP 81.531-980
________________________________





>________________________________
> De: Manoel Galdino <mcz.fea em gmail.com>
>Para: r-br em listas.c3sl.ufpr.br; marcelo costa <marcelokosta em yahoo.com.br> 
>Enviadas: Terça-feira, 29 de Janeiro de 2013 18:10
>Assunto: Re: [R-br] rodar função para cada nível de um fator
> 
>
>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 em 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 em 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/
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130129/47fbc077/attachment.html>


Mais detalhes sobre a lista de discussão R-br