В данный момент вы говорите «это дата в январе 2015 года и в то же время в январе 2016 года… и т. Д.». Это, очевидно, никогда не соответствует действительности, поскольку эти диапазоны дат не перекрываются. Вам нужно использовать «или» вместо «и»:
new_data <- my_data %>%
filter(
data > "2015-01-01" & data < "2015-02-02" |
data > "2016-01-01" & data < "2016-02-02" |
data > "2017-01-01" & data < "2017-02-02" |
data > "2018-01-01" & data < "2018-02-02"
)
Кроме того, убедитесь, что ваш столбец data
(не date
?) Действительно ссылается на дату и имеет соответствующий тип, который делает правильную вещь по сравнению со строкой символов.
Остерегайтесь с приоритетом оператора: это работает, потому что &
имеет более высокий приоритет, чем |
, но многие люди находят его более читабельным, чтобы бытьявные и поставьте круглые скобки вокруг внутренних … & …
выражений.