2013-08-22 30 views
6

में दो कॉलम से अद्वितीय फ़ील्ड मान कैसे प्राप्त करें मेरे पास एक डेटा फ्रेम है जिसमें Quarter और CustomerID शामिल हैं। इसमें मैं Quarter और CustomerID के अद्वितीय संयोजनों की पहचान करना चाहता हूं।डेटा फ्रेम

उदाहरण के लिए:

masterdf <- read.csv(text = " 
    Quarter, CustomerID, ProductID 
    2009 Q1, 1234,  1 
    2009 Q1, 1234,  2 
    2009 Q2, 1324,  3 
    2009 Q3, 1234,  4 
    2009 Q3, 1234,  5 
    2009 Q3, 8764,  6 
    2009 Q4, 5432,  7") 

क्या मैं चाहता है:

FilterQuarter  UniqueCustomerID 
2009 Q1   1234 
2009 Q2   1324 
2009 Q3   8764 
2009 Q3   1234 
2009 Q4   5432 

आर में यह करने के लिए कैसे? मैंने unique फ़ंक्शन का प्रयास किया लेकिन यह काम नहीं कर रहा है जैसा मैं चाहता हूं।

+0

ऐसा लगता है कि वह अद्वितीय '(क्वार्टर, CustomerID)' जोड़े चाहता है। हालांकि, यह स्पष्ट नहीं है कि वह संभवतः अलग-अलग आयामी डेटा फ्रेम के साथ इस नए डेटा को कॉलम-बाइंड करना चाहते हैं। –

+0

मैं दोनों दो कॉलम अद्वितीय मूल्य के साथ चाहता हूं यानी यदि ग्राहक आईडी 1234 200 9 में मौजूद है तो यह आना चाहिए। लेकिन अगर मैंने अद्वितीय इस्तेमाल किया तो इसमें केवल 200 क्यू 1 लगेगा। – snehal

+0

मैंने यहां 200 9 क्यू 1 और 200 9 क्यू 3 संपादित किया है, दोनों में ग्राहक आईडी 1234 है, इसलिए यदि मैंने अनन्य फ़ंक्शन का उपयोग किया तो मुझे केवल एक बार लेना चाहिए कि मैं 200 9 क्यू 1 और 200 9 क्यू 3 दोनों आना चाहता हूं। शीघ्र उत्तर के लिए आपका धन्यवाद। – snehal

उत्तर

10

ओपी के तहत लंबी टिप्पणियों का पालन करना मुश्किल हो रहा है। आप duplicated की तलाश कर रहे हैं जैसा कि @RomanLustrik द्वारा इंगित किया गया है। इसका इस्तेमाल अपने मूल data.frame इस तरह सबसेट तक ...

masterdf[ ! duplicated(masterdf[ c("Quarter" , "CustomerID") ]) , ] 
# Quarter CustomerID 
#1 2009 Q1  1234 
#3 2009 Q2  1324 
#4 2009 Q3  1234 
#6 2009 Q3  8764 
#7 2009 Q4  5432 
+0

धन्यवाद, मुझे आपके कमांड @ SimonO101 की मदद से आउटपुट मिला था। – snehal

+0

@ user2492230 आपका स्वागत है। मुझे खुशी है कि हम इसे हल कर सकते हैं! –

2

एक और आसान तरीका, आर से SQL प्रश्नों का उपयोग नीचे कोड की जाँच करने के लिए है। इसमें यह माना जाता masterdf मूल फ़ाइल का नाम है ...

library(sqldf) 
sqldf("select Quarter, CustomerID from masterdf group by 1,2")