У меня есть фрейм данных с датами и числами под названием 'df'. У меня есть еще один фрейм данных с датами начала и окончания, который называется date_ranges.
Моя цель - отфильтровать / установить поднабор df, чтобы он отображался только для дат начала / окончания в каждой строке столбца date_ranges. Вот мой код:
df_date <- as.Date((as.Date('2010-01-01'):as.Date('2010-04-30')))
df_numbers <- c(1:120)
df <- data.frame(df_date, df_numbers)
start_dates <- as.Date(c("2010-01-06", "2010-02-01", '2010-04-15'))
end_dates <- as.Date(c("2010-01-23", "2010-02-06", '2010-04-29'))
date_ranges <- data.frame(start_dates, end_dates)
# Attempting to filter df by start and end dates
for (i in range(date_ranges$start_dates)){
for (j in range(date_ranges$end_dates)){
print (
df %>%
filter(between(df_date, i, j)))
}
}
Первый и третий результат вложенности для l oop - это то, что я хочу, но не второй результат. Первый и третий дают мне даты и значения для df между их соответствующими строками, но второй результат - диапазон от самой ранней даты до самой последней даты. Как я могу исправить это l oop, чтобы исключить второй результат?