gpt4 book ai didi

R 通过 ID 查找日期间隔

转载 作者:行者123 更新时间:2023-12-04 04:51:17 27 4
gpt4 key购买 nike

下表包含一些关键列,它们是:客户 ID |订单编号 |产品编号 |数量 |金额 |订购日期。

所有这些数据都是 LONG 格式,因为您将获得 1 个客户 ID 的多行项目。

我可以使用 R DateDiff 获取最后一个日期的第一个日期,但使用 Plyr 将文件转换为 WIDE 格式,最终仍然遇到相同的问题,即客户获得多个订单,行数更少,列数更多。

是否有扩展 R DateDiff 的 R 函数来计算如何通过客户 ID 获取购买之间的时间间隔?也就是说,假设这些订单存在,1 阶和 2 阶、2 阶和 3 阶之间的时间,依此类推。

CID     Order.Date  Order.DateMY    Order.No_    Amount Quantity  Category.Name    Locality
1 26/02/13 Feb-13 zzzzz 1 r MOSMAN
1 26/05/13 May-13 qqqqq 1 x CHULLORA
1 28/05/13 May-13 wwwww 1 r MOSMAN
1 28/05/13 May-13 wwwww 1 x MOSMAN
2 19/08/13 Aug-13 wwwwww 1 o OAKLEIGH SOUTH
3 3/01/13 Jan-13 wwwwww 1 x CURRENCY CREEK
4 28/08/13 Aug-13 eeeeeee 1 t BRISBANE
4 10/09/13 Sep-13 rrrrrrrrr 1 y BRISBANE
4 25/09/13 Sep-13 tttttttt 2 e BRISBANE

最佳答案

拆分数据框并找到每个客户 ID 的间隔。

df <- data.frame(customerID=as.factor(c(rep("A",3),rep("B",4))),
OrderDate=as.Date(c("2013-07-01","2013-07-02","2013-07-03","2013-06-01","2013-06-02",
"2013-06-03","2013-07-01")))

dfs <- split(df,df$customerID)
lapply(dfs,function(x){
tmp <-diff(x$OrderDate)
tmp
})

或使用 plyr
library(plyr)
dfs <- dlply(df,.(customerID),function(x)return(diff(x$OrderDate)))

关于R 通过 ID 查找日期间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17399881/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com