【发布时间】:2020-07-11 07:38:13
【问题描述】:
我有一些格式类似于以下可重现示例的数据(问题下方的数据输入代码,最后)。两件事:
- 并非所有日期都有值(即缺少许多日期)。
- 某些日期有多个值,例如 2020 年 6 月 16 日。
#> date value
#> 1 30-Jun-20 20
#> 2 29-Jun-20 -100
#> 3 26-Jun-20 -4
#> 4 16-Jun-20 -13
#> 5 16-Jun-20 40
#> 6 9-Jun-20 -6
对于在星期二结束的两个星期期间,我想取 value 列的总和。
所以在上面的示例数据中,我想总结:
- 在 2020 年 6 月 16 日星期二结束的两周(即从 2020 年 6 月 3 日至 2020 年 6 月 16 日,含)
- 2020 年 6 月 30 日星期二结束的两周(2020 年 6 月 17 日 - 2020 年 6 月 30 日包括在内)
- 我最终希望代码能够继续对在每个第二个星期二结束的所有两周时间段进行求和,以便有更多数据时。
所以我想要的输出是:
#2_weeks_end total
#30-Jun-20 -84
#16-Jun-20 21
Tidyverse 和 lubridate 解决方案是我的首选。
数据输入代码如下:
df <- data.frame(
stringsAsFactors = FALSE,
date = c("30-Jun-20","29-Jun-20",
"26-Jun-20","16-Jun-20","16-Jun-20","9-Jun-20"),
value = c(20L, -100L, -4L, -13L, 40L, -6L)
)
df
【问题讨论】:
标签: r dplyr tidyverse lubridate