[R-br] Ajuda com a criação de um looping
Fernando Souza
nandodesouza em gmail.com
Segunda Janeiro 19 17:07:03 BRST 2015
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 em 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 em yahoo.com.br>
> *Para:* Rubem Kaipper Ceratti <rubem_ceratti em yahoo.com.br>;
> "r-br em listas.c3sl.ufpr.br" <r-br em 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 em 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 em yahoo.com.br>
> *Para:* "r-br em listas.c3sl.ufpr.br" <r-br em 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
>
>
> # Para simplificar, considere que temos apenas 10 vacas:
> #--------------------------------------------
> > vacas <- c(1731, 2090, 2652, 2945, 2946, 3246, 3413, 3593, 3878,
> 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 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.
>
>
>
>
>
>
>
>
>
> _______________________________________________
> 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.
--
Fernando Antônio de Souza Zootecnista,Dsc. Nutrição e alimentação animal
(UFMG) Lattes: http://lattes.cnpq.br/6519538815038307
e-mail:nandodesouza em gmail.com (82)9618-6457 (tim) (82)8113-8781 (vivo)
(82)3313-8781 (net)
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150119/5fe8c380/attachment-0001.html>
Mais detalhes sobre a lista de discussão R-br