首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >汇总日期

汇总日期
EN

Stack Overflow用户
提问于 2020-11-18 05:00:28
回答 1查看 34关注 0票数 1

我想总结一下从星期一到星期一的日期,但是星期六和星期日累积到星期五。

代码语言:javascript
复制
## A tibble: 10 x 2
#date        value
#<date>      <dbl>
#  1 2020-01-02  1     --- Thurs
#2 2020-01-03 1        --- Fri
#3 2020-01-04  2       --- Sat
#4 2020-01-06  1       --- Mon
#5 2020-01-07  1       --- Tues
#6 2020-01-08 1        --- Wed
#7 2020-01-09  1       --- Thurs
#8 2020-01-10  1       --- Fri
#9 2020-01-11  2       --- Sat
#10 2020-01-13 1       --- Mon

这就是我想要的

代码语言:javascript
复制
#date        value
#<date>      <dbl>
#  1 2020-01-02  1     --- Thurs
#2 2020-01-03 3        --- Fri
#4 2020-01-06  1       --- Mon
#5 2020-01-07  1       --- Tues
#6 2020-01-08 1        --- Wed
#7 2020-01-09  1       --- Thurs
#8 2020-01-10  3       --- Fri
#10 2020-01-13 1       --- Mon

数据

代码语言:javascript
复制
dd = structure(list(date = structure(c(18263, 18264, 18265, 18267, 18268, 18269, 18270, 18271, 18272, 18274), class = "Date"), value = c(1, 1, 2, 1, 1, 1, 1, 1, 2, 1)), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-18 05:02:45

我们可以使用weekdays将周末的‘replace’日期设置为NA,然后使用前面的非NA元素来fill NAs (假设‘arrange’已经是group_by d,然后执行sum

代码语言:javascript
复制
library(dplyr)
library(tidyr)
dd %>% 
    mutate(Weekday = weekdays(date),
          date = replace(date, Weekday %in% c("Saturday", "Sunday"), NA)) %>% 
    fill(date) %>% 
    group_by(date) %>% 
    summarise(value = sum(value), .groups = 'drop')

-output

代码语言:javascript
复制
# A tibble: 8 x 2
#  date       value
#  <date>     <dbl>
#1 2020-01-02     1
#2 2020-01-03     3
#3 2020-01-06     1
#4 2020-01-07     1
#5 2020-01-08     1
#6 2020-01-09     1
#7 2020-01-10     3
#8 2020-01-13     1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64883264

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档