<div dir="ltr"><div class="gmail_default"><div class="gmail_default"><font face="verdana, sans-serif">Paulo, olá novamente!</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">Fiz um teste, aproveitando a ideia colocada pelo Henrique...</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">teste <- data.frame(id=rep(1:3, each=10), ano=2016, mes=c(1:5,7,9:12,1:3,6:12,1:10))</font></div><div class="gmail_default"><font face="verdana, sans-serif">teste$tri <- ceiling(teste$mes/3)+1</font></div><div class="gmail_default"><font face="verdana, sans-serif">del <- which(duplicated(teste[,c(1,2,4)]))</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">res1 <- teste[-del,]; res1</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">res2 <- teste[unlist(sapply(split(teste, teste$id), function(x) c(TRUE, unlist(diff(x$mes) >= 3)))),]; res2</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">res3 <- res1[unlist(sapply(split(res1, res1$id), function(x) c(TRUE, unlist(diff(x$mes) >= 3)))),]; res3</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif">Mas acredito que ainda não seja o que você pretende. Pelo que entendi a saída correta seria tal como colocado abaixo:</font></div><div class="gmail_default"><font face="verdana, sans-serif"><br></font></div><div class="gmail_default"><font face="verdana, sans-serif"># id  ano mes tri</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 1   1 2016   1   2</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 4   1 2016   4   3</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 6   1 2016   7   4</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 8   1 2016  10   5</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 11  2 2016   1   2</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 14  2 2016   6   3</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 15  2 2016   9   4</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 18  2 2016  12   5</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 21  3 2016   1   2</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 24  3 2016   4   3</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 27  3 2016   7   4</font></div><div class="gmail_default"><font face="verdana, sans-serif"># 30  3 2016  10   5</font></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><br>================================================<br>Éder Comunello<br>Researcher at Brazilian Agricultural Research Corporation (Embrapa)<br>DSc in Agricultural Systems Engineering (USP/Esalq)<br>MSc in Environ. Sciences (UEM), <span>Agronomist (UEM)</span><br>---<br>Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|<br>================================================<br>GEO, -22.2752, -54.8182, 408m<br>UTC-04:00 / DST: UTC-03:00</span><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">Em 1 de agosto de 2016 09:14, Éder Comunello <span dir="ltr"><<a href="mailto:comunello.eder@gmail.com" target="_blank">comunello.eder@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:verdana,sans-serif"><span style="color:rgb(0,0,0);font-family:monospace,monospace;font-size:13.44px">Só corrigindo o código que postei... De fato, para o trimestre seria:</span></div><div style="font-family:verdana,sans-serif"><span style="color:rgb(0,0,0);font-family:monospace,monospace;font-size:13.44px"><br></span></div><div style="font-family:verdana,sans-serif"><span style="color:rgb(0,0,0);font-family:monospace,monospace;font-size:13.44px">dat$tri <- ceiling(dat$mes/3)+1</span><br></div><div class="gmail_extra"><span class=""><br clear="all"><div><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><br>================================================<br>Éder Comunello<br>Researcher at Brazilian Agricultural Research Corporation (Embrapa)<br>DSc in Agricultural Systems Engineering (USP/Esalq)<br>MSc in Environ. Sciences (UEM), <span>Agronomist (UEM)</span><br>---<br>Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|<br>================================================<br>GEO, -22.2752, -54.8182, 408m<br>UTC-04:00 / DST: UTC-03:00</span><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br></span><div><div class="h5"><div class="gmail_quote">Em 29 de julho de 2016 09:20, Éder Comunello <span dir="ltr"><<a href="mailto:comunello.eder@gmail.com" target="_blank">comunello.eder@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div style="font-family:verdana,sans-serif">Paulo, bom dia!<br></div><div style="font-family:verdana,sans-serif"><br># Uma alternativa é identificar o trimestre de cada observação...<br><span style="font-family:monospace,monospace">dat <- data.frame(id=rep(1:4, 6:3), ano=2016, mes=c(1,2,3,5,6,10,3,7,8,11,12,2,5,9,12,1,3,4))<br>dat$tri <- ceiling(dat$mes/4)+1</span><br><br># E preservar somente a mais antiga dentro de cada trimestre...<br><span style="font-family:monospace,monospace">del <- which(duplicated(dat[,c(1,2,4)]))<br>dat[-del,] # dados que permanecem<br>dat[del,]  # dados retirados</span><br></div></div><div class="gmail_extra"><br clear="all"><div><div data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><span><br>================================================<br>Éder Comunello<br>Researcher at Brazilian Agricultural Research Corporation (Embrapa)<br>DSc in Agricultural Systems Engineering (USP/Esalq)<br>MSc in Environ. Sciences (UEM), <span>Agronomist (UEM)</span><br>---<br>Embrapa Agropecuária Oeste, Dourados, MS, Brazil |<O>|<br>================================================<br>GEO, -22.2752, -54.8182, 408m<br>UTC-04:00 / DST: UTC-03:00</span><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote"><div><div>Em 27 de julho de 2016 09:07, Paulo Dick via R-br <span dir="ltr"><<a href="mailto:r-br@listas.c3sl.ufpr.br" target="_blank">r-br@listas.c3sl.ufpr.br</a>></span> escreveu:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr">Companheiros, bom dia.<div><br></div><div>Gostaria que me ajudassem na solução do seguinte problema:</div><div><br></div><div>Tenho uma base que possui mais de um registro por indivíduo, que preciso fazer uma limpeza a partir das variáveis mês e ano. Preciso retirar apenas os registros que possuem intervalo de tempo menor que 3 meses entre eles, priorizando os registros mais antigos. Ou seja, se tenho 4 registros para um mesmo indivíduo, nos meses 1, 3, 5 e 6 (mesmo ano), fico com as linhas dos meses 1 e 5, e excluo a linha dos meses 3 e 6.</div><div><br></div><div>Segue sintaxe para gerar fragmento extraído desta base:<br></div><div><div><font face="monospace, monospace">structure(list(identificador = structure(c(1L, 1L, 2L, 2L, 3L, </font></div><div><font face="monospace, monospace">3L, 4L, 4L, 5L, 5L, 6L, 6L, 7L, 7L, 8L, 8L, 8L, 9L, 9L, 10L, </font></div><div><font face="monospace, monospace">10L), .Label = c("1", "2", "3", "4", "5", "6", "7", "8", "9", </font></div><div><font face="monospace, monospace">"10"), class = "factor"), ano = c(2016L, 2016L, 2016L, 2016L, </font></div><div><font face="monospace, monospace">2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, </font></div><div><font face="monospace, monospace">2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L, 2016L), mes = c(5L, </font></div><div><font face="monospace, monospace">6L, 2L, 7L, 3L, 7L, 2L, 6L, 2L, 5L, 5L, 6L, 6L, 7L, 1L, 3L, 6L, </font></div><div><font face="monospace, monospace">3L, 6L, 2L, 7L)), .Names = c("identificador", "ano", "mes"), row.names = c(NA, </font></div><div><font face="monospace, monospace">21L), class = "data.frame")</font></div></div><div><br></div><div>Agradeço pela ajuda.</div><div><br></div><div>Abraços</div><div><div><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><b><br></b></div><div dir="ltr"><b>Paulo Dick</b><div>Estatístico / <span style="font-size:12.8px">Epidemiologia em Saúde Pública</span></div><div>Tel.: (55 21) 99591-2716</div></div></div></div></div></div></div></div></div>
</div></div>
<br></div></div>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" rel="noreferrer" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
</blockquote></div><br></div></div></div></div>
</blockquote></div><br></div></div>