2015-04-02 5 views
7

मेरे पास तारों का एक बहुत लंबा डेटाअरे है, और मैं डेटाफ्रेम उत्पन्न करना चाहता हूं जिसमें एक कॉलम सभी अद्वितीय तार हैं और दूसरा घटनाओं की संख्या है। अभी मैंअद्वितीय वस्तुओं की घटनाओं की संख्या को गिनने का बेहतर तरीका?

पर ऐसा कुछ कर रहा हूं लेकिन ऐसा लगता है कि ऐसा करने के लिए संभवतः एक लाइन के साथ ऐसा करने का एक आसान तरीका होना चाहिए। (मुझे पता है कि मैं स्रोत के बजाए प्रत्येक पुनरावृत्ति में परिणाम खोजकर कुछ और कोड के साथ थोड़ा तेज़ कर सकता हूं।) संभावित रूप से संबंधित प्रश्न here है लेकिन ऐसा लगता है कि गैर-संख्यात्मक डिब्बे के लिए हिस्ट ओवरलोड हो गया है। कोई विचार?

उत्तर

7

आप एक पूर्ण फ्रेम, आप बी द्वारा समूह कर सकते हैं और प्रत्येक समूह पर nrow फोन चाहते हैं:

julia> by(df, :B, nrow) 
4x2 DataFrames.DataFrame 
| Row | B | x1 | 
|-----|-----|----| 
| 1 | "D" | 1 | 
| 2 | "E" | 1 | 
| 3 | "a" | 1 | 
| 4 | "c" | 2 | 

भी DataFrame संदर्भ से बाहर है, हालांकि, आप हमेशा DataStructures.counter बल्कि यह अपने आप reimplementing से उपयोग कर सकते हैं:

julia> using DataStructures 

julia> counter(df[:B]) 
DataStructures.Accumulator{ASCIIString,Int32}(Dict("D"=>1,"a"=>1,"c"=>2,"E"=>1)) 
संबंधित मुद्दे