Ответ 1
Почему бы и нет:
testset[date>="2013-08-02" & date<="2013-11-01"]
У меня есть большой набор данных в data.table, который я бы хотел подмножать в диапазоне дат. Мой набор данных выглядит следующим образом:
testset <- data.table(date=as.Date(c("2013-07-02","2013-08-03","2013-09-04",
"2013-10-05","2013-11-06")),
yr = c(2013,2013,2013,2013,2013),
mo = c(07,08,09,10,11),
da = c(02,03,04,05,06),
plant = LETTERS[1:5],
product = as.factor(letters[26:22]),
rating = runif(25))
Я хотел бы иметь возможность выбирать диапазон дат непосредственно из столбца as.Date
без использования столбцов yr
, mo
или da
. В настоящее время я подмножаюсь на mo
, и это очень неуклюжие время от времени, особенно когда меняют годы. Более элегантный способ сделать это сделает мою жизнь бесконечно легче.
Спасибо заранее!
Почему бы и нет:
testset[date>="2013-08-02" & date<="2013-11-01"]
См. также:
?`%between%`
Работает следующим образом:
testset[date %between% c("2013-08-02", "2013-11-01")]
Вы упомянули, что вы подмножество, но неясно, используете ли вы подмножество fn в R.
Подмножество типа? в консоль R, чтобы увидеть детали функции subset() в R, которая возвращает подмножество векторов, матриц или фреймов данных, удовлетворяющих условиям. Затем используйте часть метода, который Troy опубликовал выше, чтобы выбрать диапазон дат
thisYear <- subset(testset, date > "2015-01-01" & date < "2015-12-31")