[R-br] Extrair Período de datas
Cesar Rabak
cesar.rabak em gmail.com
Terça Janeiro 24 15:27:06 BRST 2017
Excelente exemplo Karina!
Eu tinha esquecido do lubridate. . . não uso há anos, literalmente.
Quanto ao exemplo do salah, a linha:
> subset(DF, data > "2016-02-05" & DF$data < "2016-02-10")
pode ser (IMHNHO melhor):
> subset(DF, data > "2016-02-05" & data < "2016-02-10")
Ademais, *acho* que o Amiko quer os dias do Carnaval *inclusive*, por isso,
acho que a linha correta do subset seria:
> subset(DF, data >= "2016-02-05" & data <= "2016-02-10")
HTH
--
Cesar Rabak
2017-01-24 6:31 GMT-02:00 Karina Rebuli via R-br <r-br em listas.c3sl.ufpr.br>:
>
> Para verificar se uma data está contida num intervalo, tem o operador
> %within% do lubridate.
>
> Não entendi muito bem se era para lidar com dados de vários anos ou apenas
> do ano corrente, então o código abaixo funciona para vários anos. Também
> não sabia se você já tem a lista de datas de início e fim do carnaval,
> então fiz como se não a tivesse. Veja quais partes do código serão úteis.
>
> # ============================================================
> ====================
>
> # Package for creation and validation of dates interval
> if( !require( lubridate ) ){ install.packages('lubridate');
> library(lubridate); }
>
> # Data simulation
> dates <- seq( from = as.Date("2010-01-01"), to = as.Date("2017-12-31"), by
> = 1 )
>
> # Carnival begin and finish dates
> carnivals <- data.frame( d0 = as.Date( timeDate::Easter( 2010:2017 ) )-51
> , d1 = as.Date( timeDate::Easter( 2010:2017 )
> )-46 )
>
> # Checks which dates are within (%within% operand from lubridate package)
> carnivals intervals
> dates[ sapply( interval( carnivals$d0, carnivals$d1 )
> , function( x ){ which( dates %within% x ) }) ]
>
> # ============================================================
> ====================
>
> Abs,
> Karina
>
>
> On Mon, Jan 23, 2017 at 6:43 PM salah via R-br <r-br em listas.c3sl.ufpr.br>
> wrote:
>
>> olá
>>
>> Bem correto seus comentários Cesar, não compreendi bem o problema.
>>
>> segue sugestão:
>>
>> data = seq(as.Date('2016-01-01'), as.Date('2016-12-31'), by = 1)
>> DF = data.frame(data, N = 1:366)
>>
>> DF[DF$data > "2016-02-05" & DF$data < "2016-02-10",]
>>
>> ou
>>
>> subset(DF, data > "2016-02-05" & DF$data < "2016-02-10")
>>
>>
>> saudações
>>
>> _______________________________________________
>> 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 fornea
>> cdigo mnimo reproduzvel.
>
>
> _______________________________________________
> 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/20170124/0cb0a0fe/attachment.html>
Mais detalhes sobre a lista de discussão R-br