Я хотел бы поместить в таблицу data.table конкретный диапазон дат, и я попытался использовать как функции, так и функции inrange.Я предполагаю, что% между% даст мне результаты.Тем не менее, между производит странный.Вот примерные данные - поднабор выборочных данных на два периода (2014-05-06 ~ 2014-05-14 и 2015-05-06 ~ 2015-05-14).
# Create a sample dataset
library(data.table)
set.seed(1)
DT <- data.table(Date = seq.Date(from = as.Date("2014-01-01"),
to = as.Date("2015-12-31"),
by = 1),
Value = sample(365 * 2))
# Define the lower and upper ranges for the subsetting periods
lower = c(as.Date("2014-05-06"), as.Date("2015-05-06"))
upper = c(as.Date("2014-05-14"), as.Date("2015-05-14"))
# Try between function
DT[Date %between% list(lower, upper)]
# Some odd result
Date Value
1: 2014-05-07 309
2: 2014-05-09 138
3: 2014-05-11 698
4: 2014-05-13 22
5: 2015-05-07 558
6: 2015-05-09 417
7: 2015-05-11 109
8: 2015-05-13 691
# Then try inrange function
DT[Date %inrange% list(lower, upper)]
# The results look good
Date Value
1: 2014-05-06 275
2: 2014-05-07 309
3: 2014-05-08 126
4: 2014-05-09 138
5: 2014-05-10 359
6: 2014-05-11 698
7: 2014-05-12 47
8: 2014-05-13 22
9: 2014-05-14 384
10: 2015-05-06 6
11: 2015-05-07 558
12: 2015-05-08 266
13: 2015-05-09 417
14: 2015-05-10 95
15: 2015-05-11 109
16: 2015-05-12 367
17: 2015-05-13 691
18: 2015-05-14 349
InrangeФункция производит таблицу, которую я после.Читая руководство к data.table, я все еще не очень понимаю, как работает функция, особенно когда нижний и верхний значения представлены вне DT в качестве векторов.Кто-нибудь может дать мне некоторую подсказку?Спасибо.