वहाँ निम्नलिखितकुशल उपयोग
DT[, list(length(unique(OrderNo))),customerID]
की तुलना में एक अधिक कुशल क्वेरी ग्राहक पहचान-पत्र, आदेश संख्या और उत्पाद लाइन आइटम के साथ एक लंबे प्रारूप तालिका परिष्कृत करने के लिए है, जिसका अर्थ है कि वहाँ यदि ग्राहक ने उस लेनदेन में 1 से अधिक आइटम खरीदे हैं तो उसी ऑर्डर आईडी के साथ डुप्लिकेट पंक्तियां होंगी।
अद्वितीय खरीदारी करने की कोशिश कर रहा है। length()
डुप्लिकेट समेत ग्राहक आईडी द्वारा सभी ऑर्डर आईडी की गिनती देता है, केवल अद्वितीय संख्या की तलाश में।
संपादित करें:
यहाँ कुछ डमी कोड है। आदर्श रूप से मैं जो खोज रहा हूं वह 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