मुझे पता है कि यह अन्य पैकेजों के साथ हासिल किया जा सकता है, लेकिन मैं इसे data.table
में करने की कोशिश कर रहा हूं (जैसा कि यह समूह के लिए सबसे तेज़ लगता है)।डेटा.table समूह में मौजूदा समूह की लंबाई कैसे प्राप्त करें?
library(data.table)
dt = data.table(a=c(1,2,2,3))
dt[,length(a),by=a]
परिणाम
a V1
1: 1 1
2: 2 1
3: 3 1
में जबकि
df = data.frame(a=c(1,2,2,3))
ddply(df,.(a),summarise,V1=length(a))
a V1
1 1 1
2 2 2
3 3 1
जो एक और अधिक समझदार परिणाम है पैदा करता है। बस सोच रहा है कि क्यों data.table
एक ही परिणाम नहीं दे रहा है, और यह कैसे प्राप्त किया जा सकता है।
+1 @jamborta भी देखें [पूछे जाने वाले प्रश्न 2.10] (http: //datatable.r-forge.r-project। संगठन/डेटाटेबल-faq.pdf) कुछ पृष्ठभूमि के लिए। संभावित रूप से लंबे वेक्टर (समय और स्थान) के माध्यम से समान समूह मूल्य को दोहराने से बचने के लिए इसका कारण है। लंबे वैक्टर वाले ओप में, आर वांछित 1 वैक्टर रीसायकल करेगा, वैसे भी, जब आवश्यक हो। तो 'एन' यहां जाने का रास्ता है। –
धन्यवाद दोस्तों, यह बहुत उपयोगी है। – jamborta