
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.