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

Karina Rebuli karina.rebuli em gmail.com
Quinta Dezembro 22 16:48:01 BRST 2016


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.
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20161222/a01c7ed4/attachment.html>


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