使用dplyr计算唯一值的数量

时间:2018-05-05 12:57:12

标签: r dplyr

我是R中dplyr包的初学者,我想从csv文件创建一些指标。

我想按客户分组计算出CODEARTICLE =“COUPON”的行数

没有dplyr包我检索行数

length(which(merge_all$CODEUNIVERS == "COUPON")) #Result 249056

当我使用dplyr并且我按IDCLIENT分组时,我有0个foreach客户端:

test <- merge_all %>%
   filter(year(TIC_DATE) == 2017) %>% 
   group_by(IDCLIENT) %>%
   summarise(
     NbCoupon = length(which(CODEUNIVERS == "COUPON"))
   )

为什么我只有0值,如何通过客户端获得“COUPON”的实际数量?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容。按优惠券和年份过滤,按IDCLIENT分组,并使用计数来计算事件数。

test <- merge_all %>%
   filter(year(TIC_DATE) == 2017 & CODEUNIVERS == "COUPON") %>% 
   group_by(IDCLIENT) %>%
   tally()