簡體   English   中英

按分組日期之間的天數(R)

[英]Days Between Dates by Grouping (R)

我有一個數據集如下所示:

ID | SKU | PurchaseDate
84 | TRP | 42027
84 | LTH | 42027
84 | IB229US | 42027
84 | IB229US | 42104

要將以上代碼段加載為數據幀,代碼為:

id<-c(84,84,84,84,84,84)
date<-c(42027, 42027, 42027, 42104, 42123, 42167)
SKU<- c("TRP", "LTH", "IB229US", "IB229US", "BTH", "IB229US")
data<-data.frame(id,date,SKU)

我正在嘗試計算兩次購買相同SKU的平均間隔時間。 現在,我可以找到一般回購之間的間隔時間,但不能通過SKU使用以下方法:

data$dayssincelastpurchase<-unlist(by(data$date,data$ID,
                   function(x) c(NA,diff(x))))

我該怎么做呢?

謝謝

這是dplyr解決方案。 首先,您按日期排列,然后按SKU分組,最后添加自上次SKU購買以來的天數。

library(dplyr)    
data <- data %>%
    arrange(date) %>%
    group_by(SKU) %>%
    mutate(dayssincelastpurchase=date - lag(date))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM