<html><body><div style="color:#000; background-color:#fff; font-family:Courier New, courier, monaco, monospace, sans-serif;font-size:13px"><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span id="yui_3_16_0_1_1424950447264_28055">Fernando,</span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span><br></span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span id="yui_3_16_0_1_1424950447264_30728">Você teria que criar um vetor 'ganho' dentro da função:</span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span><br></span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">A <- function(x){</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  ganho <- numeric(length(x$Pesos)-1) # Vetor para armazenar valores</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  for (i in 1:length(x$Pesos)-1){</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">    difPeso <- x$Pesos[i+1] -x$Pesos[i]</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">    dias <-as.numeric( x$DATA[i+1] - x$DATA[i])</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">    ganho[i]<-difPeso/dias # Gostaria de guardar este resultado em </div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  }</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  return(mean(ganho))</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">}</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span><br></span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span><br></span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span id="yui_3_16_0_1_1424950447264_30849">Uma alternativa seria usar o pacote 'dplyr' (só não carregue o 'plyr' na mesma sessão):</span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"><span><br></span></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">library(dplyr)</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style=""><br class="" style=""></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">GPD1 <- GPD %>%</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  group_by(ANIMAL) %>%</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  mutate(DifPeso = c(NA, diff(Pesos)),</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">         Dias = c(NA, diff(DATA)),</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">         GanhoPorDia = DifPeso/Dias) %>%</div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr"></div><div id="yui_3_16_0_1_1424950447264_27994" dir="ltr" class="" style="">  summarize(GanhoMedio = mean(GanhoPorDia, na.rm = TRUE))</div><div id="yui_3_16_0_1_1424950447264_30882"><br></div>  <div style="font-family: Courier New, courier, monaco, monospace, sans-serif; font-size: 13px;" id="yui_3_16_0_1_1424950447264_27997"> <div style="font-family: HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif; font-size: 16px;" id="yui_3_16_0_1_1424950447264_27996"> <div dir="ltr" id="yui_3_16_0_1_1424950447264_27995"> <hr size="1" id="yui_3_16_0_1_1424950447264_30704">  <font size="2" face="Arial" id="yui_3_16_0_1_1424950447264_27998"> <b id="yui_3_16_0_1_1424950447264_30886"><span style="font-weight:bold;" id="yui_3_16_0_1_1424950447264_30885">De:</span></b> Fernando Souza <nandodesouza@gmail.com><br> <b id="yui_3_16_0_1_1424950447264_30954"><span style="font-weight: bold;" id="yui_3_16_0_1_1424950447264_30953">Para:</span></b> "r-br@listas.c3sl.ufpr.br" <r-br@listas.c3sl.ufpr.br> <br> <b id="yui_3_16_0_1_1424950447264_30956"><span style="font-weight: bold;" id="yui_3_16_0_1_1424950447264_30955">Enviadas:</span></b> Quinta-feira, 26 de Fevereiro de 2015 12:22<br> <b id="yui_3_16_0_1_1424950447264_30958"><span style="font-weight: bold;" id="yui_3_16_0_1_1424950447264_30957">Assunto:</span></b> [R-br] ddply -  obter ganho de peso médio<br> </font> </div> <div class="y_msg_container" id="yui_3_16_0_1_1424950447264_27999"><br>Caros amigos<br><br>Estou tentando criar um função para calcular o ganho de peso médio. Eu <br>quero calcular o ganho de peso por animal, sendo o ganho de peso a <br>média  dos ganhos obtidas a cada duas medidas sucessivas. Eu estou <br>utilizando a função ddply() do pacote {plyr} onde divido o dataframe em <br>grupos por ANIMAL e aplico a seguinte função a cada grupo.<br><br>No entanto eu preciso que o ganho de peso obtido entre duas medidas <br>consecutivas para um animal seja armazenado em um vetor, para em seguida <br>fazer a média dos ganhos de pesos. No entanto não consigo criar esse <br>vetor.Quando utilizo o comando abaixo, a função ddply retorna uma <br>mensagem de erro indicando que não foi possível encontrar o objeto ganho.<br><br>Como posso resolver esse problema?<br><br>install.packages("plyr")<br>library(plyr)<br><br>A <- function(x){<br>    for (i in 1:length(x$Pesos)-1){<br>     difPeso <- x$Pesos[i+1] -x$Pesos[i]<br>     dias <-as.numeric( x$DATA[i+1] - x$DATA[i])<br>       ganho [i]<-difPeso/dias # Gostaria de guardar este resultado em <br>um vetor e retornar somente a média<br>          }<br>    return(mean(ganho))<br>}<br>ddply(GPD,.(ANIMAL),A)<br><br><br><br><br>GPD<- structure(list(DATA = structure(c(16425, 16437, 16451, 16463,<br>16425, 16437, 16451, 16463, 16425, 16437, 16451, 16463, 16425,<br>16437, 16454, 16463, 16425, 16437, 16451, 16463, 16425, 16437,<br>16451, 16463, 16425, 16437, 16451, 16463, 16425, 16437, 16451,<br>16463, 16425, 16437, 16451, 16463, 16425, 16437, 16451, 16463,<br>16425, 16437, 16451, 16463, 16425, 16437, 16451, 16463, 16425,<br>16437, 16451, 16463, 16425, 16437, 16451, 16463, 16425, 16437,<br>16451, 16463, 16425, 16437, 16451, 16463, 16425, 16437, 16451,<br>16463, 16425, 16437, 16451, 16463, 16425, 16437, 16451, 16463,<br>16425, 16437, 16451, 16463, 16425, 16437, 16451, 16463, 16425,<br>16437, 16451, 16463, 16425, 16437, 16451, 16463, 16425, 16437,<br>16451, 16463), class = "Date"), ANIMAL = structure(c(1L, 1L,<br>1L, 1L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 10L, 10L, 10L, 10L, 15L,<br>15L, 15L, 15L, 19L, 19L, 19L, 19L, 2L, 2L, 2L, 2L, 7L, 7L, 7L,<br>7L, 13L, 13L, 13L, 13L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 17L,<br>24L, 24L, 24L, 24L, 3L, 3L, 3L, 3L, 8L, 8L, 8L, 8L, 9L, 9L, 9L,<br>9L, 12L, 12L, 12L, 12L, 20L, 20L, 20L, 20L, 22L, 22L, 22L, 22L,<br>6L, 6L, 6L, 6L, 11L, 11L, 11L, 11L, 14L, 14L, 14L, 14L, 18L,<br>18L, 18L, 18L, 21L, 21L, 21L, 21L, 23L, 23L, 23L, 23L), .Label = c("1",<br>"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13",<br>"14", "15", "16", "17", "19", "20", "21", "22", "23", "24", "25"<br>), class = "factor"), TRAT = structure(c(4L, 4L, 4L, 4L, 4L,<br>4L, 4L, 4L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 1L,<br>1L, 1L, 1L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L,<br>2L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 4L, 4L, 4L, 4L, 3L,<br>3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L,<br>1L, 1L, 1L, 4L, 4L, 4L, 4L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 1L,<br>1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("C",<br>"T1", "T2", "T3"), class = "factor"), CONSUMO = c(0.6847039559,<br>0.659115454, 0.8601238438, 0.9662238017, 0.653160515, 0.76204388,<br>0.829147492, 1.0781859662, 0.5080284272, 0.7916373952, 0.7176244537,<br>1.2145475842, 0.5901562027, 0.5354316571, 0.9090091044, 0.8230424453,<br>0.800990936, 0.8258115771, 1.0350092142, 1.1778239333, 0.4218995736,<br>0.748182177, 0.9008559089, 0.7793604982, 0.8503107855, 0.8743924455,<br>1.0149210147, 1.2117686308, 1.0008721911, 0.9224992, 1.0628987486,<br>1.3235606054, 0.5847562394, 0.5971266995, 0.9015356047, 1.1422017785,<br>0.5506020875, 0.8996851452, 1.1010903098, 1.2777703226, 0.7757312968,<br>0.7327742822, 0.9957085833, 1.299725333, 0.6184034276, 0.7019017179,<br>0.8252818991, 0.7725886442, 0.57584, 0.8274993578, 0.9568347616,<br>1.0673499251, 0.7403614923, 0.7388590798, 0.7659735658, 1.0623794866,<br>0.6109657028, 0.683632284, 0.8188398169, 0.9643152772, 0.6384021189,<br>1.0495757074, 1.0262077037, 1.3312530279, 0.9202033913, 0.8721430158,<br>1.038471733, 1.1844675851, 0.8142008896, 1.0393409306, 1.2542648171,<br>1.3544221328, 0.5135583976, 0.5789023337, 0.7218802192, 1.0082128242,<br>0.7826673895, 0.9077870689, 0.9303001507, 1.4221483678, 0.8357668107,<br>0.8984098957, 1.0042573313, 1.5336138147, 0.407296, 0.6941073063,<br>0.8535336465, 0.9517448657, 0.5418470982, 0.5011396696, 0.6771379951,<br>0.6793475586, 0.7004441364, 0.9387915881, 1.0943207226, 1.2500940543<br>), Pesos = c(14.75, 15.35, 16.8, 18.4, 17.6, 17.95, 19.2, 21,<br>19.4, 20.05, 21.4, 23.4, 14.55, 14.4, 15.1, 16.5, 19.1, 19.3,<br>20.4, 21.9, 16.3, 17.45, 18.9, 20.6, 22.25, 22.5, 23.5, 25.2,<br>22.8, 21.9, 24.2, 26.6, 18.45, 18.3, 19.5, 21.2, 21.8, 23.2,<br>22, 24.9, 18.6, 19.05, 20, 21, 17, 17.9, 18.5, 19.45, 20.6, 21.3,<br>22.6, 24.5, 19.1, 19.4, 20.1, 22.25, 16.65, 16.95, 17.8, 19.4,<br>22.8, 23.8, 24.4, 26.3, 19.3, 20.15, 21.9, 23.6, 22.9, 24.1,<br>25.6, 26.45, 16.65, 16.55, 17.3, 18.85, 22.4, 23.1, 25.4, 27.3,<br>22.9, 22.95, 25, 26.9, 16.7, 18.15, 19.7, 20.6, 14.05, 14.9,<br>15.6, 16.4, 18.9, 19.85, 21.8, 23.2)), .Names = c("DATA", "ANIMAL",<br>"TRAT", "CONSUMO", "Pesos"), row.names = c(NA, -96L), class = "data.frame")<br><br>-- <br>Fernando Antônio de Souza<br>Zootecnista,Dsc. Nutrição e alimentação animal (UFMG)<br>Lattes: <a target="_blank" class="removed-link" href="">http://lattes.cnpq.br/6519538815038307</a><br>e-mail:<a ymailto="mailto:nandodesouza@gmail.com" class="removed-link" href="">nandodesouza@gmail.com</a><br>(82)9618-6457 (tim)<br>(82)8113-8781 (vivo)<br>(82)3313-8781 (net)<br>(31)9784-5273 (vivo-MG)<br><br>_______________________________________________<br>R-br mailing list<br><a ymailto="mailto:R-br@listas.c3sl.ufpr.br" class="removed-link" href="">R-br@listas.c3sl.ufpr.br</a><br><a target="_blank" class="removed-link" href="">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>Leia o guia de postagem (<a target="_blank" class="removed-link" href="">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br><br></div> </div> </div>  </div></body></html>