如何处理R中的非连续(非日)日期,同时循环?

时间:2016-12-08 01:26:30

标签: r loops date

我正在尝试编写循环月末日期并比较相关字段的脚本,但我无法找到实现此目的的方法。

我将数据存储在基于' TheDate'的平面文件和子集中。

例如我有:

date.range <- subset(raw.data, observation_date == theDate) 

TheDate = 2007-01-31

我想找到我的数据平面文件中包含的下个月,即2007-02-28。我如何在循环中引用它?

我目前有:

date.range.t1 <- subset(raw.data, observation_date == theDate+1)

这显然不起作用,因为我的数据不是每天。

编辑: 为了更清楚,我的数据如下所示

ticker  observation_date    Price
   ADB   31/01/2007             1
   ALS   31/01/2007             2
   ALZ   31/01/2007             3
   ADB   28/02/2007             2
   ALS   28/02/2007             5
   ALZ   28/02/2007             1

我正在使用一个循环,所以我想从2007年1月31日到2007年2月29日跳过,因为它认识到它是下一个日期,并使用该值来对我的数据进行分组

1 个答案:

答案 0 :(得分:0)

首先获取日期的唯一值,如下所示:

unique_dates<-unique(raw.data$observation_date)

这些独特日期的排序:

unique_dates_ordered<-unique_dates[order(as.Date(unique_dates, format="%Y-%m-%d"))]

现在你可以根据unique_dates_ordered的索引进行子集,即

subset(raw.data, raw.data$observation_date == unique_dates_ordered[i])

其中i = 1表示第一个值,i = 2表示第二个值等。