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@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@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@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@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.