R [बंद] में डुप्लिकेट पंक्तियों को हटाकर डेटा फ्रेम


71

मैं इस उदाहरण डेटा फ़्रेम से डुप्लिकेट पंक्तियाँ कैसे निकाल सकता हूँ?

A   1
A   1
A   2
B   4  
B   1
B   1
C   2
C   2

मैं दोनों कॉलम के आधार पर डुप्लिकेट को निकालना चाहता हूं:

A   1
A   2
B   4
B   1
C   2

आदेश महत्वपूर्ण नहीं है।


@ जब भी एसओ को स्थानांतरित नहीं किया जाना चाहिए?
llrs

@ लोपोपिस हाँ, लेकिन अब ऐसा करने में बहुत देर हो चुकी है - और जब हमने मूल रूप से इसे बंद कर दिया था, तब तक बहुत देर हो चुकी थी। इस तरह के सवाल पर (सीमा रेखा पर) कई साल पहले विषय पर विचार किया गया था, लेकिन आजकल यह जल्दी से माइग्रेट हो जाएगा।
whuber

जवाबों:


115

unique()वास्तव में आपके प्रश्न का उत्तर देता है, लेकिन उसी अंत को प्राप्त करने के लिए एक और संबंधित और दिलचस्प कार्य है duplicated()

यह आपको यह देखने की संभावना देता है कि कौन सी पंक्तियों को डुप्लिकेट किया गया है।

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)

duplicated(df)
[1] FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE

> df[duplicated(df), ]
  a b
2 A 1
6 B 1
8 C 2

> df[!duplicated(df), ]
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

2
'डुप्लिकेटेड' फ़ंक्शन का उल्लेख करने के लिए धन्यवाद। इसका उपयोग कॉलम के सबसेट के आधार पर डुप्लिकेट की गई पंक्तियों को हटाने के लिए किया जा सकता है।
जोको

51

आप ढूंढ रहे हैं unique()

a <- c(rep("A", 3), rep("B", 3), rep("C",2))
b <- c(1,1,2,4,1,1,2,2)
df <-data.frame(a,b)
unique(df)

> unique(df)
  a b
1 A 1
3 A 2
4 B 4
5 B 1
7 C 2

1
धन्यवाद बर्नड। मुझे लगा कि अद्वितीय को केवल एक विशिष्ट कॉलम के लिए ही लागू किया जा सकता है। मुझे नहीं पता था कि इसका उपयोग पूरे डेटा फ्रेम के लिए भी किया जा सकता है। धन्यवाद फिर से
जन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.