使用R版本3.1.3我试图对事件日志数据中的事件进行计数。如何使用data.table按日期(月,年,日)和子组汇总结果
我有一个timstamped事件的数据集。我清理了数据,并将其加载到data.table中以便于操作。
Colnames的订购日期,EVENTDATE,订单ID,EventTypeID,LocationID和EncounterID,
这些事件聚合为:EncounterID的有多个单编号,每个单编号有多个EVENTID数据
例子是:
library(data.table)
DT <- fread("OrderDate,EventDate,OrderID,EventTypeID,LocationID,EncounterID
1/12/2012 5:40,01/12/2012 05:40,100001,12344,1,5998887
1/12/2012 5:40,01/12/2012 05:49,100001,12345,1,5998887
1/12/2012 5:40,01/12/2012 06:40,100001,12345,1,5998887
1/12/2012 5:45,01/12/2012 05:45,100002,12344,1,5998887
1/12/2012 5:45,01/12/2012 05:49,100002,12345,1,5998887
1/12/2012 5:45,01/12/2012 06:40,100002,12345,1,5998887
1/12/2012 5:46,01/12/2012 05:46,100003,12344,2,5948887
1/12/2012 5:46,01/12/2012 05:49,100003,12345,2,5948887
1/12/2013 7:40,01/12/2013 07:40,123001,12345,2,6008887
1/12/2013 7:40,01/12/2013 07:41,123001,12346,2,6008887
1/12/2013 7:40,01/12/2013 07:50,123001,12345,2,6008887
1/12/2013 7:40,01/12/2013 07:55,123001,12345,2,6008887")
DT$OrderDate <- as.POSIXct(DT$OrderDate, format="%d/%m/%Y %H:%M")
DT$EventDate <- as.POSIXct(DT$EventDate, format="%d/%m/%Y %H:%M")
我的最终目标是使用ggplot2可视化地浏览这些数据,查看每个月的各种组合的数量......但是我在使用data.table的数据汇总时遇到了问题
我的具体问题(一个例子)我如何能产生以下的表: 月 - 年,LocationID,Count_of_Orders
如果我做到以下几点:
DT[,.N,by=.(month(OrderDate),year(OrderDate))]
我得到一个所有eventID的计数,但我需要每个locationID的OrderID的每月计数。
month year N
1: 12 2012 8
2: 12 2013 4
但是 - 我要找的是 - 月 - 年的N个结果由LocationID:
Month-Year,LocationID,Count_of_orders
01-12,1,2
01-12,2,1
01-13,1,0
01-13,2,1
注:请注意,对于任何位置,不具有单在一个月,他们应该被列为零计数。因此,需要通过生成唯一位置ID列表来确定位置。
有人可以提供解决方案吗?
感谢
你能否提供一些可以直接粘贴到R中的数据? – rmccloskey 2015-03-31 15:53:18
好的,添加了csv格式。感谢您查看这个 – tcs 2015-03-31 16:20:37
我的原始数据很粗糙 - 只是为了说明概念/目标......更新的数据应该是干净/可行的(并且可以通过csv加载)。 – tcs 2015-03-31 16:30:13