【发布时间】:2015-09-23 09:41:36
【问题描述】:
我是 R 编程新手。 我有每个客户的发票详细信息,日期和想知道每个客户的平均购买周期。数据是这样的:
----------------------------
|Cust_no |Invoice_no | Date|
----------------------------
| C001 | W012 | 4/1/2015
-----------------------------------
| C001 | W234 | 4/11/2015
-----------------------------------
|C001 | W321 | 5/1/2015
-----------------------------------
|C002 | W131 | 4/1/2015
----------------------------------
|C002 | W245 | 4/13/2015
----------------------------------
|C003 | W047 | 3/18/2015
----------------------------------
因此,对于每个客户,代码应将连续日期之间的差值相加并除以 (n-1)。 n = 没有。每个客户的交易量。如果只有一个交易存在,那么我想输出一个默认编号。 (比如 45 天)
获得平均后的下一步。每个客户的购买周期(C),我想看看哪个客户的购买周期正在接近(发送通知) 例子: 在以下情况下将“购买期临近”标记为“1”: (C-2)*n
假设今天是 2015 年 5 月 15 日,那么我们将有以下输出。
预期输出 对于客户 C001,平均购买周期为 = (10+20)/(3-1)= 15 天。 对于客户 C002,平均购买周期为 = (10)/(2-1)= 10 天 对于客户 C003,距离只有一笔交易的 45 天,默认值为 45。
---------------------------------------------------------------------------
|Cust_no |Buying_cycle|last_invoice_date|time_since_last_inv|buy_perd_near
---------------------------------------------------------------------------
| C001 | 15 | 5/1/2015 |14 | 1
---------------------------------------------------------------------------
| C002 | 12 | 4/13/2015 |32 | 0
---------------------------------------------------------------------------
| C003 | 45 | 3/18/2015 |68 | 0
---------------------------------------------------------------------------
我面临着寻找平均值的挑战。购买期。一旦我能得到平均值。购买期,我可以应用逻辑来判断购买期是否临近。
注意:原始数据不会按客户或升序/降序排序。
{
structure(list(cust_no = structure(c(1L, 1L, 1L, 2L, 2L, 3L), .Label = c("c001",
"c002", "c003"), class = "factor"), inv_no = structure(c(1L,
3L, 4L, 2L, 6L, 5L), .Label = c("w015", "w087", "w167", "w231",
"w234", "w456"), class = "factor"), date = structure(c(1L, 2L,
5L, 1L, 3L, 4L), .Label = c("2015-4-1", "2015-4-11", "2015-4-13",
"2015-4-17", "2015-5-1"), class = "factor")), .Names = c("cust_no",
"inv_no", "date"), row.names = c(NA, -6L), class = "data.frame")
}
【问题讨论】:
-
欢迎来到 SO。请以其他人易于导入的格式和预期的输出提供您的数据。感谢您为解决您的问题所做的一些努力。以下是有关创建 reproducible example 的更多信息。
-
从这里开始 [statmethods.net/] 在导入数据中
-
嗨,@Dipesh。您是否成功地将数据放入 data.frame 甚至矩阵甚至一系列向量中?我看到您非常努力地制作一些数据,但我认为这不是您的实际数据。在您担心平均购买期计算之前,我们需要对您的数据进行排序。如果您有数据,您可以将其粘贴到页面中,我们可以从那里为您格式化。