Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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_Date_Dplyr_Tidyverse_Cumsum - Fatal编程技术网

如何使用R中的条件计算日期之间的差异

如何使用R中的条件计算日期之间的差异,r,date,dplyr,tidyverse,cumsum,R,Date,Dplyr,Tidyverse,Cumsum,我想知道用户有多少天不购买产品 我有以下建议: ID| DATA | QTD 1 |2019-01-31 | NA 1 |2019-02-28 | 3 1 |2019-03-31 | NA 1 |2019-04-30 | 5 2 |2019-01-31 | 3 2 |2019-02-28 | 4 2 |2019-03-31 | NA 2 |2019-04-30 | NA 3 |2019-01-31 | NA 3 |2019-02-28 | 3

我想知道用户有多少天不购买产品

我有以下建议:

ID|  DATA     |  QTD
1 |2019-01-31 |   NA
1 |2019-02-28 |   3
1 |2019-03-31 |   NA
1 |2019-04-30 |   5
2 |2019-01-31 |   3
2 |2019-02-28 |   4
2 |2019-03-31 |   NA
2 |2019-04-30 |   NA
3 |2019-01-31 |   NA
3 |2019-02-28 |   3
3 |2019-03-31 |   NA
3 |2019-04-30 |   NA
我试图使用dplyr:mutate,但没有得到任何结果

我的目标:

ID|  DATA     |  QTD  | Days
1 |2019-01-31 |   NA  |  NA
1 |2019-02-28 |   3   |  0
1 |2019-03-31 |   NA  |  31
1 |2019-04-30 |   5   |  0
2 |2019-01-31 |   3   |  0
2 |2019-02-28 |   4   |  0
2 |2019-03-31 |   NA  |  31
2 |2019-04-30 |   NA  |  61
3 |2019-01-31 |   NA  |  NA
3 |2019-02-28 |   NA  |  NA 
3 |2019-03-31 |   4   |  31
3 |2019-04-30 |   8   |  61
Tks库(dplyr) 图书馆(tidyr) df1%>% 突变(数据=as.Date(数据,“%Y-%m-%d”), QTD=作为数字(作为字符(QTD))%>% 分组人(ID, ID2=cumsum(+(如果其他(is.na(QTD),0,QTD)!=0))%>% 突变(NoBuy=cumsum)(替换( as.numeric(如果其他(is.na(QTD),数据-滞后(数据),0)) , 0))) %>% 解组%>%选择(-ID2) #>警告:强制引入NAs #>#tibble:12 x 4 #>ID数据QTD NoBuy #> #>1 2019-01-31北美0 #> 2 1 2019-02-28 3 0 #>31 2019-03-31北美31 #> 4 1 2019-04-30 5 0 #> 5 2 2019-01-31 3 0 #> 6 2 2019-02-28 4 0 #>7 2 2019-03-31北美31 #>8 2 2019-04-30北美61 #>9 3 2019-01-31 NA 0 #> 10 3 2019-02-28 3 0 #>11 3 2019-03-31北美31 #>12 3 2019-04-30北美61 数据:

df1 1)使用可复制数据发布,例如,
dput(head(df))
,2)显示您使用的代码(而不仅仅是“我尝试了
dplyr::mutate
)。