r - 总结日期
问题描述
我想总结周一到周一的日期,但周六和周日累积在周五
## 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"))
解决方案
我们可以使用周末的'日期' to weekdays
,然后使用具有前一个非NA元素的s(假设'日期'已经是d,然后做一个replace
NA
fill
NA
arrange
group_by
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')
-输出
# 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
推荐阅读
- axon - 未调用 TrackingEventProcessors 中的 Axon EventHandlers
- php - 如何将查询字符串添加到 $GET 函数
- mysql - INNODB FULLTEXT 使用 JOIN 搜索:不同表上的搜索词
- apache - 从 apache 负载均衡器禁用成员
- c++ - 按第二个元素对c ++中的一对向量进行排序,如果第二个相同,则根据第一个对其进行排序
- javascript - 如何在光标上显示文本
- python - Python Selenium:无法从 Instagram 中获取 HREF 链接
- ubuntu - 找不到 kubeconfig 文件
- reactjs - 为什么我不能扩展html?
- dependency-injection - Yii2 队列作业构造函数依赖注入替代