
Acho que isso resolve o problema ilibrary(plyr) # Você necessitará instalar o pacote plyr media<-function(x){ mean(x$producao) } ddply(a21,.(n_vaca,dia_ciclo),media) On 19-01-2015 16:55, Simone D. Sartorio wrote:
Nossa, valeu mesmo Rubem!
Deu certo! Só precisa fazer um ajuste em relação a ordem cronológica do "dia_ciclo", pois gostaria que ficasse seguida toda a informação da mesma vaca, para só depois passar para a seguinte....será que tem algum argumento que daria para colocar na função que faça isso? você sabe?
obrigada! ;) Si
**
Em Segunda-feira, 19 de Janeiro de 2015 16:31, Rubem Kaipper Ceratti <rubem_ceratti@yahoo.com.br> escreveu:
Falha minha:
aggregate(producao ~ n_vaca + dia_ciclo, a21, mean)
*Acho* que está tudo certo agora...
------------------------------------------------------------------------ *De:* Simone D. Sartorio <sisartorio@yahoo.com.br> *Para:* Rubem Kaipper Ceratti <rubem_ceratti@yahoo.com.br>; "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br> *Enviadas:* Segunda-feira, 19 de Janeiro de 2015 16:29 *Assunto:* Re: [R-br] Ajuda com a criação de um looping
Rubem, mas eu preciso das médias por vaca e por dia do ciclo e não a média geral!
Como poderia usar essa função?! Pelo que entendi ela tem a mesma função do tapply()
obrigada Si
Em Segunda-feira, 19 de Janeiro de 2015 16:22, Rubem Kaipper Ceratti <rubem_ceratti@yahoo.com.br> escreveu:
Nesse caso, talvez seja melhor usa a função 'aggregate':
aggregate(producao ~ dia_ciclo, a21, mean)
Att., Rubem
------------------------------------------------------------------------ *De:* Simone D. Sartorio <sisartorio@yahoo.com.br> *Para:* "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br> *Enviadas:* Segunda-feira, 19 de Janeiro de 2015 16:12 *Assunto:* [R-br] Ajuda com a criação de um looping
Pessoal, preciso de uma ajuda...
Meus dados são esses "a21", nele tenho a observação de 219 vacas (n_vaca), que estão numeradas de maneira aleatória. As vacas foram separadas em 3 grupos, onde em cada grupo aplicaram um tratamento diferente. Esse tratamento foi aplicado em forma de injeções (17 injeções) e entre uma injeção e outra, temos 14 dias de intervalo. A variável de interesse é "producao"
head(a21) n_vaca n_lactacao trat pri_multiparas n_injecao dia_ciclo dia_exp producao saude 8 1731 3 1 2 0 1 -13 45.1 healthy 9 1731 3 1 2 0 2 -12 47.8 healthy 10 1731 3 1 2 0 3 -11 45.5 healthy 11 1731 3 1 2 0 4 -10 45.2 healthy 12 1731 3 1 2 0 5 -9 47.4 enrollment 13 1731 3 1 2 0 6 -8 48.3 enrollment
# Aqui estou criando um subconjunto, onde tenho todas as informações da vaca 1731:
(vaca1731<- subset(a21, a21$n_vaca==1731)); dim(vaca1731) n_vaca n_lactacao trat pri_multiparas n_injecao dia_ciclo dia_exp producao saude 8 1731 3 1 2 0 1 -13 45.1 healthy 9 1731 3 1 2 0 2 -12 47.8 healthy 10 1731 3 1 2 0 3 -11 45.5 healthy 11 1731 3 1 2 0 4 -10 45.2 healthy 12 1731 3 1 2 0 5 -9 47.4 enrollment 13 1731 3 1 2 0 6 -8 48.3 enrollment 14 1731 3 1 2 0 7 -7 46.4 enrollment 15 1731 3 1 2 0 8 -6 47.9 enrollment 16 1731 3 1 2 0 9 -5 50.3 enrollment 17 1731 3 1 2 0 10 -4 50.8 enrollment 18 1731 3 1 2 0 11 -3 47.9 enrollment 19 1731 3 1 2 0 12 -2 46.2 heat 20 1731 3 1 2 0 13 -1 50.8 healthy 21 1731 3 1 2 0 14 0 45.8 healthy 22 1731 3 1 2 1 1 1 50.5 healthy 23 1731 3 1 2 1 2 2 49.0 healthy 24 1731 3 1 2 1 3 3 48.8 healthy 25 1731 3 1 2 1 4 4 53.9 healthy 26 1731 3 1 2 1 5 5 45.4 healthy 27 1731 3 1 2 1 6 6 38.6 healthy 28 1731 3 1 2 1 7 7 41.3 healthy 29 1731 3 1 2 1 8 8 50.2 healthy 30 1731 3 1 2 1 9 9 50.2 healthy 31 1731 3 1 2 1 10 10 50.4 healthy 32 1731 3 1 2 1 11 11 49.9 healthy 33 1731 3 1 2 1 12 12 50.1 healthy 34 1731 3 1 2 1 13 13 52.0 healthy 35 1731 3 1 2 1 14 14 47.8 healthy 36 1731 3 1 2 2 1 15 50.0 healthy 37 1731 3 1 2 2 2 16 49.7 healthy 38 1731 3 1 2 2 3 17 50.4 healthy 39 1731 3 1 2 2 4 18 48.9 healthy 40 1731 3 1 2 2 5 19 49.5 healthy 41 1731 3 1 2 2 6 20 48.8 healthy 42 1731 3 1 2 2 7 21 56.3 healthy 43 1731 3 1 2 2 8 22 52.1 healthy 44 1731 3 1 2 2 9 23 51.6 healthy 45 1731 3 1 2 2 10 24 50.5 healthy 46 1731 3 1 2 2 11 25 46.0 healthy 47 1731 3 1 2 2 12 26 53.7 healthy 48 1731 3 1 2 2 13 27 51.7 healthy 49 1731 3 1 2 2 14 28 49.1 healthy 50 1731 3 1 2 3 1 29 51.9 healthy 51 1731 3 1 2 3 2 30 51.4 healthy ... 256 1731 3 1 2 17 11 235 21.2 lamness 257 1731 3 1 2 17 12 236 19.4 lamness 258 1731 3 1 2 17 13 237 23.5 lamness 259 1731 3 1 2 17 14 238 19.9 lamness [1] 251 9
vacas <- c(1731, 2090, 2652, 2945, 2946, 3246, 3413, 3593, 3878,
# Para simplificar, considere que temos apenas 10 vacas: #-------------------------------------------- 3882) # é a numeração das vacas
# O que eu quero fazer com esses dados é o seguinte: v1<- subset(a21, a21$n_vaca==vacas[1]); dim(v1) v2<- subset(a21, a21$n_vaca==vacas[2]); dim(v2) v3<- subset(a21, a21$n_vaca==vacas[3]); dim(v3) v4<- subset(a21, a21$n_vaca==vacas[4]); dim(v4) v5<- subset(a21, a21$n_vaca==vacas[5]); dim(v5) v6<- subset(a21, a21$n_vaca==vacas[6]); dim(v6) v7<- subset(a21, a21$n_vaca==vacas[7]); dim(v7) v8<- subset(a21, a21$n_vaca==vacas[8]); dim(v8) v9<- subset(a21, a21$n_vaca==vacas[9]); dim(v9) v10<- subset(a21, a21$n_vaca==vacas[10]); dim(v10)
b<- c( tapply(v1$producao, v1$dia_ciclo, mean), tapply(v2$producao, v2$dia_ciclo, mean), tapply(v3$producao, v3$dia_ciclo, mean), tapply(v4$producao, v4$dia_ciclo, mean), tapply(v5$producao, v5$dia_ciclo, mean), tapply(v6$producao, v6$dia_ciclo, mean), tapply(v7$producao, v7$dia_ciclo, mean), tapply(v8$producao, v8$dia_ciclo, mean), tapply(v9$producao, v9$dia_ciclo, mean), tapply(v10$producao, v10$dia_ciclo, mean)) #--------------------------------------------
Ainda estou engatinhando em questão de programação no R, como poderia fazer um looping com essas linhas de comando, pois preciso fazer isso para as 219 vacas!
desde já, muito obrigada! Simone /****---***---***---***---***---***---***---***---***---***---***---***---****/ /** Simone Daniela Sartorio*/ * Professora Adjunta I no CCA/UFSCar, Araras/SP. *Doutora e Mestre em Estatística e Experimentação Agronômica - ESALQ/USP. * Licenciada em Matemática - UNESP/Rio Claro. */***---***---***---***---***---***---***---***---***---***---***---***---***/* ** */Tenha um bom dia! /;)*
_______________________________________________ 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.
_______________________________________________ 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.
-- Fernando Antônio de Souza Zootecnista,Dsc. Nutrição e alimentação animal (UFMG) Lattes: http://lattes.cnpq.br/6519538815038307 e-mail:nandodesouza@gmail.com (82)9618-6457 (tim) (82)8113-8781 (vivo) (82)3313-8781 (net)