从R中的向量中提取多个片段

时间:2015-09-04 04:04:03

标签: r vector

我有3个向量,var fname = files.name; //var f = files[0]; var f = files; datesfromDates。 如何提取toDatesfromDates[1]toDates[1]fromDates[2]之间的日期等。

这是一个例子。我试图使用日期[之间(日期,从日期,到日期)],但结果不正确,并且有一些警告。

toDates[2]

如何在不使用循环的情况下提取片段? > 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不是向量而是其他一些简单结构的解决方案也将受到赞赏。

感谢。

1 个答案:

答案 0 :(得分:1)

不清楚你在问什么,但我会尝试使用你的例子:

dates[(
    findInterval(dates,c(rbind(rev(fromDates),rev(toDates))))
    %% 2) ==1]