我想总结一下从星期一到星期一的日期,但是星期六和星期日累积到星期五。
## 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这就是我想要的
#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数据
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"))发布于 2020-11-18 05:02:45
我们可以使用weekdays将周末的‘replace’日期设置为NA,然后使用前面的非NA元素来fill NAs (假设‘arrange’已经是group_by d,然后执行sum
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
# 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 1https://stackoverflow.com/questions/64883264
复制相似问题