R-1小时内每个电子邮件ID进行的交易数量

时间:2018-11-22 16:31:19

标签: r

我有一个数据集,如下所示:

child_process.exec("cqls --file my_file", function(err, stdout, stderr){})"

我想计算每个电子邮件ID在1小时内进行的交易数量。例如,电子邮件ID:abc@gmail.com从18/11/10 12.10 PM到11/10/18 1.10 PM进行了3笔交易,从11/10/18 1.16 PM到11/10/18进行了2笔交易。下午2.16。

我想要的输出是:

id  email   Date of purchase    time of purchase
1   abc@gmail.com   11/10/18    12:10 PM
2   abc@gmail.com   11/10/18    12:11 PM
3   abc@gmail.com   11/10/18    12:14 PM
4   abc@gmail.com   11/10/18    1:16 AM
5   abc@gmail.com   11/10/18    2:10 AM
6   def@gmail.com   11/10/18    12:17 PM
7   def@gmail.com   11/10/18    12:24 PM
8   def@gmail.com   11/10/18    1:16 PM
9   ghi@gmail.com   11/10/18    12:10 PM
10  ghi@gmail.com   11/10/18    1:41 PM
11  ghi@gmail.com   11/11/18    1:44 PM
12  ghi@gmail.com   11/11/18    1:56 PM
13  ghi@gmail.com   11/11/18    2:30 AM
14  ghi@gmail.com   11/11/18    2:37 AM

我不知道如何在R中开始。我的数据集有70万行。任何帮助将不胜感激。谢谢。 :)

1 个答案:

答案 0 :(得分:2)

我们可以使用round_date中的lubridate来对“小时”进行四舍五入,并将其用作分组变量以获取行数

library(tidyverse)
df1 %>% 
   mutate(dateNew = mdy_hm(paste(Dateofpurchase, timeofpurchase))) %>% 
   group_by( hourly = round_date(dateNew, 'hour'), email) %>% 
   summarise(purchaseIn1hour = n())