Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算R中特定时间段之间的预约次数_R_Dataframe_Date_Time - Fatal编程技术网

如何计算R中特定时间段之间的预约次数

如何计算R中特定时间段之间的预约次数,r,dataframe,date,time,R,Dataframe,Date,Time,我想创建一个数据框,在其中我计算从2015年11月29日到2020年9月5日的每周预约次数(从周日开始到周六结束的一周) 首先,我计算了每天的预约次数,如下所示,但现在我很难跳转到下一个练习——每周做一次。你知道一种快速的方法吗 appointments_day <- df %>% group_by(region, id, name, date) %>% summarise(appointments = n()) expand.grid(date

我想创建一个数据框,在其中我计算从2015年11月29日到2020年9月5日的每周预约次数(从周日开始到周六结束的一周)

首先,我计算了每天的预约次数,如下所示,但现在我很难跳转到下一个练习——每周做一次。你知道一种快速的方法吗

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        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)]
库(data.table)
图书馆(lubridate)

df非常感谢,但是如果我在我的原始数据集中运行你的代码,我会得到date=NA和week_year NA NA-NA,它有更多的列,我在我的问题中的示例中提到了。顺便说一句,我不知道你在你的代码中指定了我的周从星期日到星期六,从2015年11月29日到2020年9月5日?你导入了库lubridate吗?是的。我在“df”中得到date=NA和week_year NA-NA,在“result”中我得到week_year=NA-NA,预约似乎是每个诊所的总数,这不是我需要的。有什么想法吗?嗯,也许你的日期栏已经格式化为日期了。尽量不使用dmy()。显然,如果日期栏中没有信息,就无法正确地将各组分开,因此您可以看到每个诊所的预约总数。非常感谢,它似乎起到了作用。当您执行“周(df$Date)”时-此功能周从周日开始?你知道吗?我需要确定这一点。还有最后一件事,这个功能周从诊所的初始日期开始计算,但我必须将从2015年11月29日开始的缺失周数等于0,你知道怎么做吗?
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)]