Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/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
Sql R:按日期保留未结问题的数量_Sql_R_Date - Fatal编程技术网

Sql R:按日期保留未结问题的数量

Sql R:按日期保留未结问题的数量,sql,r,date,Sql,R,Date,我的数据只有两列——开始的时间和开始的日期 我想保持一个总的开放数量 例如,以下是我的数据: Issue Day Started Day Stopped A 7-01-2013 Still Open B 7-04-2013 7-06-2013 C 7-09-2013 7-10-2013 D 7-09-2013 7-11-2013 E 7-09-2013 Still

我的数据只有两列——开始的时间和开始的日期 我想保持一个总的开放数量

例如,以下是我的数据:

Issue      Day Started  Day Stopped
A          7-01-2013    Still Open
B          7-04-2013    7-06-2013
C          7-09-2013    7-10-2013
D          7-09-2013    7-11-2013
E          7-09-2013    Still Open
F          7-11-2013    Still Open
我希望我的数据是这样的:

Date       Issues Open
7-01-2013  1
7-02-2013  1
7-03-2013  1
7-04-2013  2
7-05-2013  2
7-06-2013  1
7-07-2013  1
7-08-2013  1
7-09-2013  4
7-10-2013  3
7-11-2013  3

关于如何得到这个有什么建议吗?谢谢

感谢
Wen
指出我原来的答案没有回答OP的要求。我想补充一个必要的tidyverse回答:

library(dplyr)
library(tidyverse)

DF$Stopped[is.na(DF$Stopped)] <- max(DF$Started)+1
DF %>% 
   group_by( Issue ) %>% 
   nest() %>% 
   mutate(data = map(data, ~ seq(.x$Started, .x$Stopped-1, 1))) %>% 
   unnest() %>%
   group_by(data) %>% 
   summarise(OpenIssues=sum(!is.na(Issue)))
库(dplyr)
图书馆(tidyverse)
DF$Stopped[is.na(DF$Stopped)]%
分组人(发行量)%>%
嵌套()%>%
突变(数据=映射(数据,~seq(.x$start,.x$Stopped-1,1)))%>%
unest()%>%
分组依据(数据)%>%
总结(OpenIssues=sum(!is.na(问题)))
df[df=='Still Open']='3000-01-01'#小把戏
df$Day.start=as.Date(df$Day.start)
df$Day.Stopped=as.Date(df$Day.Stopped)
df1=数据帧(日期=序号(截至日期(“2013/07/01”),by=“day”,length.out=20))
df1['未解决的问题]=NA
对于(i in 1:dim(df1)[1]){
df1$`Issues Open`[i]=总和(df$Day.Starteddf1$Date[i])
}
>df1
开放日期问题
1  2013-07-01           1
2  2013-07-02           1
3  2013-07-03           1
4  2013-07-04           2
5  2013-07-05           2
6  2013-07-06           1
7  2013-07-07           1
8  2013-07-08           1
9  2013-07-09           4
10 2013-07-10           3
11 2013-07-11           3

sql还是r?您正在寻找哪种解决方案?如果是sql,请标记您正在使用的dbms。您可以尝试我的解决方案~我不确定是否有更简洁的方法。这不是OP想要的。您可以澄清OP想要什么吗?开放案例计数,基于您的数据,在2017-01-03,我的数据中应该有6个案例仍然开放只有3个
2017-01-03
条目…这个日期怎么可能还有6个案例开放?(请注意,OP没有提供与输出相对应的所有
输入
数据。)2017-01-01和2017-01-02的案例开始时间在2017-01-03之前未结束。
df[df=='Still Open']='3000-01-01'# small trick
df$Day.Started=as.Date(df$Day.Started)
df$Day.Stopped=as.Date(df$Day.Stopped)
df1=data.frame(Date=seq(as.Date("2013/07/01"), by = "day", length.out = 20))

df1['Issues Open']=NA

for (i in 1:dim(df1)[1]){

    df1$`Issues Open`[i]=sum(df$Day.Started<=df1$Date[i]&df$Day.Stopped>df1$Date[i])
}

> df1
         Date Issues Open
1  2013-07-01           1
2  2013-07-02           1
3  2013-07-03           1
4  2013-07-04           2
5  2013-07-05           2
6  2013-07-06           1
7  2013-07-07           1
8  2013-07-08           1
9  2013-07-09           4
10 2013-07-10           3
11 2013-07-11           3