[R-br] Ajuda com a criação de um looping
Simone D. Sartorio
sisartorio em yahoo.com.br
Quarta Janeiro 21 15:03:02 BRST 2015
Rubem, muito obrigada!Deu certinho!abraçosSi ***---***---***---***---***---***---***---***---***---***---***---***---**** 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! ;)
Em Segunda-feira, 19 de Janeiro de 2015 17:08, Rubem Kaipper Ceratti <rubem_ceratti em yahoo.com.br> escreveu:
Simone,
Você pode inverter a ordem das variáveis:
aggregate(producao ~ dia_ciclo + n_vaca, a21, mean)
ou então reordenar via 'order':
a22 <- aggregate(producao ~ n_vaca + dia_ciclo, a21, mean)
a22[with(a22, order(n_vaca, dia_ciclo)), ]
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:55
Assunto: Re: [R-br] Ajuda com a criação de um looping
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()
obrigadaSi
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 saude8 1731 3 1 2 0 1 -13 45.1 healthy9 1731 3 1 2 0 2 -12 47.8 healthy10 1731 3 1 2 0 3 -11 45.5 healthy11 1731 3 1 2 0 4 -10 45.2 healthy12 1731 3 1 2 0 5 -9 47.4 enrollment13 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 saude8 1731 3 1 2 0 1 -13 45.1 healthy9 1731 3 1 2 0 2 -12 47.8 healthy10 1731 3 1 2 0 3 -11 45.5 healthy11 1731 3 1 2 0 4 -10 45.2 healthy12 1731 3 1 2 0 5 -9 47.4 enrollment13 1731 3 1 2 0 6 -8 48.3 enrollment14 1731 3 1 2 0 7 -7 46.4 enrollment15 1731 3 1 2 0 8 -6 47.9 enrollment16 1731 3 1 2 0 9 -5 50.3 enrollment17 1731 3 1 2 0 10 -4 50.8 enrollment18 1731 3 1 2 0 11 -3 47.9 enrollment19 1731 3 1 2 0 12 -2 46.2 heat20 1731 3 1 2 0 13 -1 50.8 healthy21 1731 3 1 2 0 14 0 45.8 healthy22 1731 3 1 2 1 1 1 50.5 healthy23 1731 3 1 2 1 2 2 49.0 healthy24 1731 3 1 2 1 3 3 48.8 healthy25 1731 3 1 2 1 4 4 53.9 healthy26 1731 3 1 2 1 5 5 45.4 healthy27 1731 3 1 2 1 6 6 38.6 healthy28 1731 3 1 2 1 7 7 41.3 healthy29 1731 3 1 2 1 8 8 50.2 healthy30 1731 3 1 2 1 9 9 50.2 healthy31 1731 3 1 2 1 10 10 50.4 healthy32 1731 3 1 2 1 11 11 49.9 healthy33 1731 3 1 2 1 12 12 50.1 healthy34 1731 3 1 2 1 13 13 52.0 healthy35 1731 3 1 2 1 14 14 47.8 healthy36 1731 3 1 2 2 1 15 50.0 healthy37 1731 3 1 2 2 2 16 49.7 healthy38 1731 3 1 2 2 3 17 50.4 healthy39 1731 3 1 2 2 4 18 48.9 healthy40 1731 3 1 2 2 5 19 49.5 healthy41 1731 3 1 2 2 6 20 48.8 healthy42 1731 3 1 2 2 7 21 56.3 healthy43 1731 3 1 2 2 8 22 52.1 healthy44 1731 3 1 2 2 9 23 51.6 healthy45 1731 3 1 2 2 10 24 50.5 healthy46 1731 3 1 2 2 11 25 46.0 healthy47 1731 3 1 2 2 12 26 53.7 healthy48 1731 3 1 2 2 13 27 51.7 healthy49 1731 3 1 2 2 14 28 49.1 healthy50 1731 3 1 2 3 1 29 51.9 healthy51 1731 3 1 2 3 2 30 51.4 healthy...256 1731 3 1 2 17 11 235 21.2 lamness257 1731 3 1 2 17 12 236 19.4 lamness258 1731 3 1 2 17 13 237 23.5 lamness259 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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20150121/919caf55/attachment.html>
Mais detalhes sobre a lista de discussão R-br