【发布时间】:2019-10-04 22:16:49
【问题描述】:
我有一个数据框,用于存储来自呼叫中心的呼叫记录。我的目的是统计每个时间间隔存在多少条记录,例如,在30分钟的时间间隔内,可能有3条通话记录(即在该特定时间间隔内输入了3条通话);如果该时间间隔没有记录,那么我的计数器应该显示一个零值。
这个post 很有用,但我没有实现,当某个时间间隔内没有记录时,它会显示一个零值。
这是我call_log的结构:
Classes ‘data.table’ and 'data.frame': 24416 obs. of 23 variables:
$ closecallid : int 1145000 1144998 1144997 1144996 1144995 1144991 1144989 1144987 1144986 1144984 ...
$ lead_id : int 1167647 1167645 1167644 1167643 1167642 1167638 1167636 1167634 1167633 1167631 ...
$ list_id :integer64 998 998 998 998 998 998 998 998 ...
$ campaign_id : chr "212120" "212120" "212120" "212120" ...
$ call_date : POSIXct, format: "2019-08-26 20:25:30" "2019-08-26 19:32:28" "2019-08-26 19:27:03" ...
$ start_epoch : POSIXct, format: "2019-08-26 20:25:30" "2019-08-26 19:32:28" "2019-08-26 19:27:03" ...
$ end_epoch : POSIXct, format: "2019-08-26 20:36:25" "2019-08-26 19:44:52" "2019-08-26 19:40:23" ...
$ length_in_sec : int 655 744 800 1109 771 511 640 153 757 227 ...
$ status : chr "Ar" "Ar" "Ar" "Ar" ...
$ phone_code : chr "1" "1" "1" "1" ...
$ phone_number : chr "17035555" "43667342" "3135324788" "3214255222" ...
$ user : chr "jfino" "jfino" "jfino" "jfino" ...
$ comments : chr "AUTO" "AUTO" "AUTO" "AUTO" ...
$ processed : chr "N" "N" "N" "N" ...
$ queue_seconds : num 0 524 692 577 238 95 104 0 0 0 ...
$ user_group : chr "CEAS" "CEAS" "CEAS" "CEAS" ...
$ xfercallid : int 0 0 0 0 0 0 0 0 0 0 ...
$ term_reason : chr "CALLER" "CALLER" "CALLER" "AGENT" ...
$ uniqueid : chr "1566869112.557969" "1566865941.557957" "1566865611.557952" "1566865127.557947" ...
$ agent_only : chr "" "" "" "" ...
$ queue_position: int 1 2 2 2 1 2 1 1 1 1 ...
$ called_count : int 1 1 1 1 1 1 1 1 1 1 ...
这是我的代码
df <- setDT(call_log)[ , list(number_customers_arrive = sum(called_count)), by = cut(call_date, "30 min")]
提前致谢。
【问题讨论】: