Мы можем использовать grep
, чтобы получить индексы строк и затем установить подкадр данных.
criteria_1 = "2018-10"
criteria_2 = "2018-12"
df[grep(criteria_1, df$dates):grep(criteria_2, df$dates), ]
# dates A
#2 2018-10 4
#3 2018-11 2
#4 2018-12 66
Если есть некоторые проблемы вне допустимого диапазона, мы можем использовать match
вместо этого с правильнымnomatch
аргументы
df[match(criteria_1, df$dates, nomatch = 1):
match(criteria_2, df$dates, nomatch = nrow(df)), ]
Таким образом, если crietria_2
выходит за пределы диапазона default
, он переходит к последней строке
criteria_1 = "2018-10"
criteria_2 = "2018-aa"
df[match(criteria_1, df$dates, nomatch = 1):
match(criteria_2, df$dates, nomatch = nrow(df)), ]
# dates A
#2 2018-10 4
#3 2018-11 2
#4 2018-12 66
#5 2019-01 5
и если criteria_1
выходит за пределыдиапазона мы можем перейти к первому ряду на default
он делает к первому ряду
criteria_1 = "2018-aa"
criteria_2 = "2018-12"
df[match(criteria_1, df$dates, nomatch = 1):
match(criteria_2, df$dates, nomatch = nrow(df)), ]
# dates A
#1 2018-09 3
#2 2018-10 4
#3 2018-11 2
#4 2018-12 66