У меня есть 3 вектора, dates
, fromDates
и toDates
. Как извлечь даты, которые находятся между fromDates[1]
и toDates[1]
, fromDates[2]
и toDates[2]
и т.д.извлечение нескольких сегментов из вектора в R
Вот пример. Я пытался использовать даты [между (date, fromDates, toDates)], но результат неверен и есть некоторые предупреждения.
> dates=seq(Sys.Date(),length=1499,by="-1 day")
> head(dates)
[1] "2015-09-04" "2015-09-03" "2015-09-02" "2015-09-01" "2015-08-31" "2015-08-30"
> toDates=seq(Sys.Date()-as.integer(runif(1)*365),length=3,by="-1 year")
> toDates
[1] "2015-08-13" "2014-08-13" "2013-08-13"
> fromDates=toDates-3
> fromDates
[1] "2015-08-10" "2014-08-10" "2013-08-10"
> dates[between(dates,fromDates,toDates)]
[1] "2015-08-11" "2014-08-12" "2013-08-13" "2013-08-10"
Warning messages:
1: In `>=.default`(x, lower) :
longer object length is not a multiple of shorter object length
2: In `<=.default`(x, upper) :
longer object length is not a multiple of shorter object length
Как извлечь сегменты без использования петли? Решение, где fromDates
и toDates
не являются векторами, но некоторые другие простые структуры также будут оценены.
Спасибо.
Пожалуйста, смотрите, как сделать [Minimal, полный и проверяемый пример] (HTTP://stackoverflow.com/help/mcve) или [Как сделать отличный воспроизводимый пример R] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example). – N8TRO
В какой пакет включена функция 'между '? –