Teste T entre amostras em uma mesma planilha
2 participantes
Página 1 de 1
Teste T entre amostras em uma mesma planilha
Boa Noite Professores,
Eu tenho alguns dados de expressão de alguns genes em alguns tecidos vegetais.
Eu gostaria de comparar apenas a expressão desses genes entre os tecidos verdes e secos (apenas entre as folhas ou apenas entre os colmos, etc..) mas todos os dados estão na mesma planilha.
Como faço para fazer o teste para cada par (ex. gene DHN entre folhas verdes e folhas secas) sem criar arquivos separados para cada gene?
Os dados são esses:
Gene Sample Fold_Change
DHN Folha_Seca 507.0006887
DHN Folha_Seca 4503.832255
DHN Folha_Seca 5336.865909
DHN Folha_Verde 18.71587775
DHN Folha_Verde 7.945559334
DHN Folha_Verde 4.199699304
DHN Folha_Verde 4.930670344
DHN Colmo_Seco 648.9021766
DHN Colmo_Seco 6068.934783
DHN Colmo_Seco 5525.812271
DHN Colmo_Verde 0.699097956
DHN Colmo_Verde 9.478155016
DHN Colmo_Verde 3.685757381
DHN Colmo_Verde 3.836962148
DHN Raiz_Seca 1118.592852
DHN Raiz_Seca 1772.057202
DHN Raiz_Seca 1031.313686
DHN Raiz_Verde 1.385496394
DHN Raiz_Verde 0.773072029
DHN Raiz_Verde 0.997873231
DHN Raiz_Verde 0.935619506
LNC Folha_Seca 4.99906365
LNC Folha_Seca 51.6445387
LNC Folha_Seca 62.01112411
LNC Folha_Verde 1.953320646
LNC Folha_Verde 0.679679786
LNC Folha_Verde 1.199521123
LNC Colmo_Seco 206.1998326
LNC Colmo_Seco 1155.184073
LNC Colmo_Seco 1617.582816
LNC Colmo_Verde 0.66575083
LNC Colmo_Verde 0.121342023
LNC Colmo_Verde 0.380466014
LNC Colmo_Verde 0.282325435
LNC Raiz_Seca 10.0795111
LNC Raiz_Seca 418.9842634
LNC Raiz_Seca 304.8101047
LNC Raiz_Verde 0.442770636
LNC Raiz_Verde 2.017394032
LNC Raiz_Verde 0.665683501
LNC Raiz_Verde 1.681754754
PRP Raiz_Seca 76.16736998
PRP Raiz_Seca 177.7168902
PRP Raiz_Seca 77.7536582
PRP Raiz_Verde 1.394282926
PRP Raiz_Verde 0.614943382
PRP Raiz_Verde 1.166309891
LTP Raiz_Seca 0.142445784
LTP Raiz_Seca 2.863415581
LTP Raiz_Seca 2.451692601
LTP Raiz_Verde 77.34560447
LTP Raiz_Verde 27.48225666
LTP Raiz_Verde 48.5596193
Eu tenho alguns dados de expressão de alguns genes em alguns tecidos vegetais.
Eu gostaria de comparar apenas a expressão desses genes entre os tecidos verdes e secos (apenas entre as folhas ou apenas entre os colmos, etc..) mas todos os dados estão na mesma planilha.
Como faço para fazer o teste para cada par (ex. gene DHN entre folhas verdes e folhas secas) sem criar arquivos separados para cada gene?
Os dados são esses:
Gene Sample Fold_Change
DHN Folha_Seca 507.0006887
DHN Folha_Seca 4503.832255
DHN Folha_Seca 5336.865909
DHN Folha_Verde 18.71587775
DHN Folha_Verde 7.945559334
DHN Folha_Verde 4.199699304
DHN Folha_Verde 4.930670344
DHN Colmo_Seco 648.9021766
DHN Colmo_Seco 6068.934783
DHN Colmo_Seco 5525.812271
DHN Colmo_Verde 0.699097956
DHN Colmo_Verde 9.478155016
DHN Colmo_Verde 3.685757381
DHN Colmo_Verde 3.836962148
DHN Raiz_Seca 1118.592852
DHN Raiz_Seca 1772.057202
DHN Raiz_Seca 1031.313686
DHN Raiz_Verde 1.385496394
DHN Raiz_Verde 0.773072029
DHN Raiz_Verde 0.997873231
DHN Raiz_Verde 0.935619506
LNC Folha_Seca 4.99906365
LNC Folha_Seca 51.6445387
LNC Folha_Seca 62.01112411
LNC Folha_Verde 1.953320646
LNC Folha_Verde 0.679679786
LNC Folha_Verde 1.199521123
LNC Colmo_Seco 206.1998326
LNC Colmo_Seco 1155.184073
LNC Colmo_Seco 1617.582816
LNC Colmo_Verde 0.66575083
LNC Colmo_Verde 0.121342023
LNC Colmo_Verde 0.380466014
LNC Colmo_Verde 0.282325435
LNC Raiz_Seca 10.0795111
LNC Raiz_Seca 418.9842634
LNC Raiz_Seca 304.8101047
LNC Raiz_Verde 0.442770636
LNC Raiz_Verde 2.017394032
LNC Raiz_Verde 0.665683501
LNC Raiz_Verde 1.681754754
PRP Raiz_Seca 76.16736998
PRP Raiz_Seca 177.7168902
PRP Raiz_Seca 77.7536582
PRP Raiz_Verde 1.394282926
PRP Raiz_Verde 0.614943382
PRP Raiz_Verde 1.166309891
LTP Raiz_Seca 0.142445784
LTP Raiz_Seca 2.863415581
LTP Raiz_Seca 2.451692601
LTP Raiz_Verde 77.34560447
LTP Raiz_Verde 27.48225666
LTP Raiz_Verde 48.5596193
lmattiello- Mensagens : 6
Data de inscrição : 22/12/2015
Idade : 40
Localização : Campinas
Re: Teste T entre amostras em uma mesma planilha
Oi, Lucia, tudo bem?
Então, como tudo no R, tem várias soluções. A que eu proponho aqui é prática, apesar de talvez não ser a mais "elegante". Daria, por exemplo, para automatizar mais o processo, mas por mais bonito que fosse, acho que poderia ficar complicado. Então vou numa saída simples, usando a função split, que divide os dados em subconjuntos.
A única cautela aqui é não usar o attach(). Isso porque vamos ter vários subconjuntos de dados, cada um com os mesmos nomes de variáveis. Usar attach numa situação desta é muito arriscado. No lugar dele, vamos usar o argumento data para informar a qual parte dos dados nos referimos. O argumento data é aceito em funções de testes estatísticos e de gráficos, então dá pra fazer tudo com ele, ok?
A solução que eu proponho é esta:
Simples, né?
Você pode fazer o teste para cada gene agora, bastando especificar com o argumento data com qual gene quer trabalhar.
Agora, da forma como está, vai funcionar para os genes que tem apenas 2 níveis na variável sample. Para os genes que tem 4 níveis, vamos precisar fazer alguma outra coisa. Vou pensar aqui e já digo, ok?
Então, como tudo no R, tem várias soluções. A que eu proponho aqui é prática, apesar de talvez não ser a mais "elegante". Daria, por exemplo, para automatizar mais o processo, mas por mais bonito que fosse, acho que poderia ficar complicado. Então vou numa saída simples, usando a função split, que divide os dados em subconjuntos.
A única cautela aqui é não usar o attach(). Isso porque vamos ter vários subconjuntos de dados, cada um com os mesmos nomes de variáveis. Usar attach numa situação desta é muito arriscado. No lugar dele, vamos usar o argumento data para informar a qual parte dos dados nos referimos. O argumento data é aceito em funções de testes estatísticos e de gráficos, então dá pra fazer tudo com ele, ok?
A solução que eu proponho é esta:
- Código:
dados.divididos<-split(dados, dados$Gene)
t.test(Fold_Change~Sample, var.equal=T, data=dados.divididos$PRP)
Simples, né?
Você pode fazer o teste para cada gene agora, bastando especificar com o argumento data com qual gene quer trabalhar.
Agora, da forma como está, vai funcionar para os genes que tem apenas 2 níveis na variável sample. Para os genes que tem 4 níveis, vamos precisar fazer alguma outra coisa. Vou pensar aqui e já digo, ok?
Re: Teste T entre amostras em uma mesma planilha
Tá, achei aqui uma solução.
De novo, teriam várias, mas quis seguir uma que tivesse a mesma lógica da solução inicial. Pra isso, vamos precisar do pacote reshape, ok?
Na nova solução, vamos usar a função colsplit (do reshape) que permite "quebrar" uma coluna em pedaços. Vamos usar esta função para identificar quem é folha, quem é colmo, etc. Vamos fazer assim:
Agora nós podemos usar a coluna "tipo1" para separar os dados de novo, e aí testar as diferenças para cada tipo. Mas primeiro precisamos incorporar a nova coluna no objeto dados. Lá vai:
Agora vamos finalizar:
Ufa!
No fim, acho que ficou longo, e estou em dúvida se de fato seria a melhor solução. Ela resolveu, mas acho que dá quase tanto trabalho quanto reformatar os dados...
Vou pensar mais aqui, e qualquer coisa proponho outra saída. Mas veja o que você acha desta, ok?
De novo, teriam várias, mas quis seguir uma que tivesse a mesma lógica da solução inicial. Pra isso, vamos precisar do pacote reshape, ok?
Na nova solução, vamos usar a função colsplit (do reshape) que permite "quebrar" uma coluna em pedaços. Vamos usar esta função para identificar quem é folha, quem é colmo, etc. Vamos fazer assim:
- Código:
library(reshape)
library(reshape)
tipo<-colsplit(dados$Sample, split="_", names=c("tipo1", "tipo2"))
tipo
Agora nós podemos usar a coluna "tipo1" para separar os dados de novo, e aí testar as diferenças para cada tipo. Mas primeiro precisamos incorporar a nova coluna no objeto dados. Lá vai:
- Código:
dados.novos<-cbind(dados, tipo$tipo1)
head(dados.novos)
#O nome da coluna nova ficou problemático, e iria atrapalhar o próximo passo.
#Então, ates de seguir, vou ajeitar o nome assim:
colnames(dados.novos)[4]<-"tipo"
head(dados.novos)
Agora vamos finalizar:
- Código:
#Vou dividir os dados de novo, pois agora temos uma nova coluna, ok?
dados.divididos<-split(dados.novos, dados.novos$Gene)
head(dados.divididos)
DHN.dividido<-split(dados.divididos$DHN, dados.divididos$DHN[,4])
DHN.dividido
#Agora pode fazer cada teste para este gene, assim:
t.test(Fold_Change~Sample, data=DHN.dividido$Raiz)
Ufa!
No fim, acho que ficou longo, e estou em dúvida se de fato seria a melhor solução. Ela resolveu, mas acho que dá quase tanto trabalho quanto reformatar os dados...
Vou pensar mais aqui, e qualquer coisa proponho outra saída. Mas veja o que você acha desta, ok?
Re: Teste T entre amostras em uma mesma planilha
Deu certo Professor! Obrigada! Ontem quebrei a cabeça e acabei dividindo os dados mesmo, mas assim ficou mais simples! obrigada
lmattiello- Mensagens : 6
Data de inscrição : 22/12/2015
Idade : 40
Localização : Campinas
Tópicos semelhantes
» Teste para homogeneidade das variâncias em 4.12- O teste T
» Cálculo de estimativa da de número de amostras (delineamento)
» ANOVA - Como rodar a mesma função para várias variáveis de uma única vez?
» Como montar uma tabela de frequência total e relativa a partir de dados em planilha excel xlsx no Rstudio
» Dúvidas - Gráficos - Correlações entre dados de diferentes matrizes
» Cálculo de estimativa da de número de amostras (delineamento)
» ANOVA - Como rodar a mesma função para várias variáveis de uma única vez?
» Como montar uma tabela de frequência total e relativa a partir de dados em planilha excel xlsx no Rstudio
» Dúvidas - Gráficos - Correlações entre dados de diferentes matrizes
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|