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 ) }) ]
# ================================================================================