[R-br] RES: Diferença entre datas

Fernando Antonio de souza nandodesouza em gmail.com
Quinta Dezembro 22 17:20:59 BRST 2016


Acho que aqui há a resposta

http://stackoverflow.com/questions/1995933/number-of-months-between-two-dates/1996404


Em 22/12/2016 5:17 PM, "Fernando Antonio de souza" <nandodesouza em gmail.com>
escreveu:

> Veja a função difftime{base} acho que ela te ajudará
>
> Em 22/12/2016 4:48 PM, "Karina Rebuli via R-br" <r-br em listas.c3sl.ufpr.br>
> escreveu:
>
>> Muito bem observado, Jonatan, obrigada :)
>>
>> On Thu, Dec 22, 2016 at 4:36 PM Leonard Mendonça de Assis via R-br <
>> r-br em listas.c3sl.ufpr.br> wrote:
>>
>>> Era esse detalhe que eu estava tentando entender, eu tinha uma função em
>>> SQL para calcular esta diferença. Sabia também que o R tinha algumas coisas
>>> prontas, mas estava apanhando nos detalhes justamente citados no help do
>>> lubridate, quando as diferenças são próximas a um mês em meses como
>>> fevereiro, por exemplo.
>>>
>>>
>>>
>>> Estava conseguindo somar meses, dias, etc, mas obter a diferença em
>>> meses, eu não havia compreendido ainda. O máximo que cheguei perto tinha
>>> sido com a função difftime, onde consegui a diferença em semanas.
>>>
>>>
>>>
>>> A ajuda de vocês foi escencial, acho que agora o treco aqui sai do lugar
>>>
>>>
>>>
>>> Leonard
>>>
>>>
>>>
>>> *De:* R-br [mailto:r-br-bounces em listas.c3sl.ufpr.br] *Em nome de *Jônatan
>>> via R-br
>>> *Enviada em:* quinta-feira, 22 de dezembro de 2016 16:24
>>> *Para:* Karina Rebuli <karina.rebuli em gmail.com>; a lista Brasileira
>>> oficial de discussão do programa R. <r-br em listas.c3sl.ufpr.br>
>>> *Assunto:* Re: [R-br] Diferença entre datas
>>>
>>>
>>>
>>> Só para constar,
>>>
>>> as funções do lubridate já são vetorizadas então não precisa do sapply:
>>>
>>> library(lubridate)
>>>
>>> dates <- c("2011-01-17", "2009-11-21")
>>> p <- as.period( interval( ymd(dates), Sys.Date() ) )
>>>
>>> year(p)*12 + month(p)
>>>
>>>
>>>
>>>
>>>
>>> 2016-12-22 15:31 GMT-02:00 Karina Rebuli via R-br <
>>> r-br em listas.c3sl.ufpr.br>:
>>>
>>>
>>> Olá, Leonard.
>>>
>>> Sei duas formas de fazer isso.
>>>
>>> =====
>>> * Com os funções-base do R:
>>> sapply( sapply( as.Date( c("2011-01-17", "2009-11-21") ), seq,
>>> Sys.Date(), by = "month" ), length )
>>>
>>> Importante ressaltar que desssa forma se o dia das datas a serem
>>> comparadasfor maior que o dia da data atual, ele vai retornar um mês a mais
>>> (pois a seq() vai começar com a data passada e isso já é um retorno a ser
>>> contabilizado na length().
>>>
>>> ====
>>>
>>> * Com funções do lubridate (acho o pacote excelente e uso bastante, é de
>>> autoria do Hadley):
>>>
>>> sapply( c("2011-01-17", "2009-11-21"), function(day0){
>>>   p <- as.period( interval( ymd( day0 ), Sys.Date() ) )
>>>   year(p)*12 + month(p)
>>> })
>>>
>>> Dessa forma não precisa se preocupar com o dia inicial e você ainda pode
>>> acrescentar o day(p)/30 ao retorno se quiser a fração do resultado em meses.
>>>
>>> Abs,
>>>
>>> Karina
>>>
>>>
>>>
>>>
>>>
>>> On Thu, Dec 22, 2016 at 3:03 PM Leonard Mendonça de Assis via R-br <
>>> r-br em listas.c3sl.ufpr.br> wrote:
>>>
>>> Boa tarde
>>>
>>>
>>>
>>> Imagine o seguinte cmr:
>>>
>>>
>>>
>>> as.Date(c("2011-01-17", "2009-11-21"))-Sys.Date()
>>>
>>> Time differences in days
>>>
>>> [1] -2166 -2588
>>>
>>> >
>>>
>>> Como eu conseguiria obter este resultado, não em dias, mas em meses?
>>>
>>>
>>>
>>> Leonard
>>>
>>> _______________________________________________
>>> 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.
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> ###############################################################
>>> ##  Jônatan Dupont Tatsch
>>>
>>> ##  Professor do Departamento de Física
>>>
>>> ##  Centro de Ciências Exatas e Naturais (CCNE)
>>>
>>> ##  Universidade Federal de Santa Maria - UFSM
>>>
>>> ##  Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil
>>> - 97105-900
>>>
>>> ##  Telefone: +55(55)33012083 <(55)%203301-2083>
>>>
>>> ##  www.ufsm.br/meteorologia
>>>
>>> ###############################################################
>>> _______________________________________________
>>> 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.
>>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161222/b2c3a455/attachment-0001.html>


Mais detalhes sobre a lista de discussão R-br