【发布时间】:2016-01-27 11:53:14
【问题描述】:
我想从每日计算每周回报(使用周三到周三的惯例)。原始数据如下(摘录):
...
4003 1985-05-06 200.764
4004 1985-05-07 202.502
4005 1985-05-08 202.683
4006 1985-05-09 204.642
4007 1985-05-10 206.051
4008 1985-05-13 207.702
4009 1985-05-14 207.630
4010 1985-05-15 207.585
4011 1985-05-16 207.843
4012 1985-05-17 209.723
4013 1985-05-20 212.843
...
为了计算每周收益,我想提取每周三的数据。如果一周不包括星期三,我想提取下一个工作日。
为了提取星期三的数据,我使用了以下代码:
wednesday = as.POSIXlt(time(data))$wday == 3
indx <- c(0, which(wednesday))
datanew<-period.apply(data, INDEX=indx, FUN=last)
但是有了这段代码,如果这周没有周三的数据,那么显然不会提取周三的数据,也就是说周三有假期。
有人可以帮忙吗?
【问题讨论】:
-
解决此问题的一种方法是检查数据集中缺少哪些星期三,然后用第二天的数据替换它们。然后你就可以毫无问题地应用你的代码了。
-
对不起,这不是一个答案,但您可能会发现包 lubridate 用于处理 R 中的日期和时间很有帮助:cran.r-project.org/web/packages/lubridate/vignettes/…