我有一个数据集,如下所示:
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万行。任何帮助将不胜感激。谢谢。 :)
答案 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())