【发布时间】:2014-11-04 16:24:42
【问题描述】:
我需要按每天的呼叫次数来获取累计客户。
一个示例表是:
> data
dia cli llam elegidos cumllam
1 1-11 a 1 1 1
2 3-11 a 1 1 2
3 1-11 b 2 1 2
4 2-11 b 1 1 3
5 2-11 c 2 0 2
如您所见,客户 a 在第 2-11 天没有被调用,因此客户 a + 第 2-11 天的组合不会出现在表格中。如果我跑:
series<-data.frame(dcast(data, elegidos+dia~cumllam , length))
我明白了:
> series
elegidos dia X1 X2 X3
1 0 2-11 0 1 0
2 1 1-11 1 1 0
3 1 2-11 0 0 1
4 1 3-11 0 1 0
但是如果您考虑直到第二天有多少客户被调用一次,客户 a 应该出现,但它不会出现,因为我在前一个表中没有针对客户 a 和天的组合的行2-11.
表格应如下所示:
elegidos dia X1 X2 X3
1 0 2-11 0 1 0
2 1 1-11 1 1 0
3 1 2-11 1 0 1
4 1 3-11 0 1 1
x1 是收到直到(包括该行)当天正好 1 个电话的客户数量。
x2 是收到直到(包括该行)当天正好 2 个电话的客户数量。
等等。
解释是:
- 客户“a”在第 1 天和第 3 天接到电话,客户“b”在第 1 天接到 2 个电话,在第 2 天接到 1 个电话。因此,第一天我们有 1 个客户接听 1 个电话,另一个接听 2 个电话。
- 第 2 天,因为它是累积的,我们有客户 a,他打了一个电话保持不变,客户 b 又接到了一个电话,达到了 3 个电话。
- 在第 3 天,客户 a 接到另一个电话,并且累计增加了 2 个电话,这就是他在 x2 中而客户 b 在 x3 中保持不变的原因。
有没有办法对每一天进行这种累积计数,而不必为每个客户日组合创建一行?
谢谢。
【问题讨论】:
-
您想同时积累
elegidos,还是只积累客户数量? -
@ssdecontrol 我只需要累积客户数量。 Elegidos 应该是一列,就像在最后一个表中一样。
-
@akrun,感谢您的关注。客户 a 在第 1 天和第 3 天接到电话,客户 b 在第 1 天接到 2 个电话,在第 2 天接到 1 个电话。因此,第一天我们有 1 个客户接听 1 个电话,另一个接听 2 个电话。第 2 天,由于是累积的,我们有客户 a,他打一个电话保持不变,客户 b 又接到一个电话,达到 3 个电话。在第 3 天,客户 a 接到另一个电话,累积最多 2 个电话,这就是他在 x2 中而客户 b 在 x3 中保持不变的原因。
-
@akrun,嗨,我添加了更多信息来澄清。
-
嗨,第二张桌子不是我想要的,它只是 reshape 给的。客户 a 在第 1 天收到 1 个电话,在第 3 天收到 1 个电话。所以,最后一天他有2个电话。这就是你在重塑的 las 线中看到的。没有显示的是客户 b,他在第 1 天收到 2 个,在第 2 天收到 1 个,由于第 3 天没有接到任何电话,所以没有出现,我需要在第 3 行显示他。第二天,客户 a 也发生了同样的情况。
标签: r reshape cumulative-frequency