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

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


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/76dec32a/attachment.html>


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