[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