r - 如何计算R中特定时间段之间的约会nr
问题描述
我想创建一个数据框,在其中汇总从 2015 年 11 月 29 日到 2020 年 5 月 9 日每周(从周日开始到周六结束的周数)的约会次数。
首先,我按照下面计算了每天的约会次数,但现在我正在努力跳到下一个练习——每周做一次。你知道一个快速的方法来做到这一点吗?
appointments_day <- df %>%
group_by(region, id, name, date) %>%
summarise(appointments = n())
expand.grid(date = seq(min(df$date), max(df$date), by = '1 day')) %>%
left_join(., appointments_day)
我的数据集是:
region id name date appointments
A 1 clinic1 29-11-2015 2
A 1 clinic1 26-05-2020 1
A 1 clinic1 28-05-2020 4
A 1 clinic1 01-06-2020 2
A 1 clinic1 03-06-2020 2
A 2 clinic2 25-05-2020 3
A 2 clinic2 26-05-2020 1
A 2 clinic2 27-05-2020 4
B 3 clinic3 06-07-2020 3
B 3 clinic3 08-07-2020 2
B 3 clinic3 09-07-2020 1
我想创建以下数据集:
region id name first day of the week (as Sunday) appointments
A 1 clinic1 29-11-2015 2
....
A 1 clinic1 24-05-2020 5
A 1 clinic1 31-05-2020 4
....
A 2 clinic2 29-11-2015 0
....
A 2 clinic2 24-05-2020 8
....
B 3 clinic3 29-11-2015 0
....
B 3 clinic3 05-07-2020 6
解决方案
根据您的数据集,我将执行以下操作:
library(data.table)
library(lubridate)
df <- setDT(your_dataset)
df$date <- dmy(df$date)
df$week_year <- paste0(week(df$date), '-', year(df$date))
result <- df[, .(appointments = .N), by = .(region, id, name, week_year)]
(您不必先汇总每天的日期。您可以将我的代码用于原始数据集)
推荐阅读
- angular - 如何检索 Firebase 身份验证服务上所有注册用户的列表?
- php - 如何正确地将 CIDRAM 挂接到 OpenCart
- javascript - Firebase 身份验证显示名称查询
- mysql - 如何在特定 AI ID 之前获取行数?
- android - 当应用程序关闭时,这个 Runnable 会导致内存泄漏吗?
- testing - 无法通过钩子将标头值添加到 HTTP 请求
- gradle - 有没有办法忽略 gradle 构建配置中依赖项的警告?
- json - AWS Athena 取消嵌套
- python-3.x - or-tools 为 tsp 设置自定义成本
- environment-variables - 如何将 env 变量连接到 YAML 文件中的字符串