有沒有更高效的查詢比下面高效利用[R data.table和獨特的()的
DT[, list(length(unique(OrderNo))),customerID]
細化客戶的ID,訂單號和產品線的料長格式表,這意味着如果客戶在該交易中購買了多於一件商品,那麼將具有相同訂單ID的重複行。
試圖制定出獨特的購買。 length()
根據包含重複項的客戶ID給出所有訂單編號的計數,僅查找唯一編號。
編輯從這裏:
這是一些虛擬代碼。理想情況下,我要查找的是使用unique()
的第一個查詢的輸出。
df <- data.frame(
customerID=as.factor(c(rep("A",3),rep("B",4))),
product=as.factor(c(rep("widget",2),rep("otherstuff",5))),
orderID=as.factor(c("xyz","xyz","abd","qwe","rty","yui","poi")),
OrderDate=as.Date(c("2013-07-01","2013-07-01","2013-07-03","2013-06-01","2013-06-02","2013-06-03","2013-07-01"))
)
DT.eg <- as.data.table(df)
#Gives unique order counts
DT.eg[, list(orderlength = length(unique(orderID))),customerID]
#Gives counts of all orders by customer
DT.eg[,.SD, keyby=list(orderID, customerID)][, .N, by=customerID]
^
|
This should be .N, not .SD ~ R.S.
@Ricardo,僅僅侷限於N改寫我覺得這很有趣,是的。乾杯。 – digdeep