可以说我有以下数据框
df<-structure(data.frame(date=c("2014-11-04",'2014-11-12','2014-11-17'),volume=c("5","10","2")))
这将返回
date volume
2014-11-04 5
2014-11-12 10
2014-11-17 2
我想看到的输出是“星期五”周结束日期
Week Ending volume
1 2014-11-07 5
2 2014-11-14 10
3 2014-11-21 2
我已经到处搜索但找不到解决方案。我能找到的最接近的是下面的代码
df$date[weekdays(df$date)=="Friday"]
但不将输出显示为数据框。
任何帮助,将不胜感激!
Use ceiling_date http://www.inside-r.org/packages/cran/lubridate/docs/ceiling_date in the lubridate
包裹。你需要稍微调整一下,因为四舍五入到下周日而不是周五。
x <- seq(Sys.Date(), by = "1 day", length.out = 21)
data.frame(
x = x,
weekday = weekdays(x),
next_friday = ceiling_date(x, "week") +
ifelse(weekdays(x) %in% c("Saturday", "Sunday"), 5, -2)
)
## x weekday next_friday
## 1 2014-11-17 Monday 2014-11-21
## 2 2014-11-18 Tuesday 2014-11-21
## 3 2014-11-19 Wednesday 2014-11-21
## 4 2014-11-20 Thursday 2014-11-21
## 5 2014-11-21 Friday 2014-11-21
## 6 2014-11-22 Saturday 2014-11-28
## 7 2014-11-23 Sunday 2014-11-28
## 8 2014-11-24 Monday 2014-11-28
## 9 2014-11-25 Tuesday 2014-11-28
## 10 2014-11-26 Wednesday 2014-11-28
## 11 2014-11-27 Thursday 2014-11-28
## 12 2014-11-28 Friday 2014-11-28
## 13 2014-11-29 Saturday 2014-12-05
## 14 2014-11-30 Sunday 2014-12-05
## 15 2014-12-01 Monday 2014-12-05
## 16 2014-12-02 Tuesday 2014-12-05
## 17 2014-12-03 Wednesday 2014-12-05
## 18 2014-12-04 Thursday 2014-12-05
## 19 2014-12-05 Friday 2014-12-05
## 20 2014-12-06 Saturday 2014-12-12
## 21 2014-12-07 Sunday 2014-12-12
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)