2012-10-29 30 views
11

में मैं इस तरह एक डेटा फ्रेम:अद्वितीय/क्रमबद्ध data.frame

x=c("01","01","01","22","22","03","03","03","35","35") 
y=c("f","f","f","m","m","m","m","m","f","f") 
df=data.frame(spn=x, sex=y) 

लगता है:

spn sex 
1 01 f 
2 01 f 
3 01 f 
4 22 m 
5 22 m 
6 03 m 
7 03 m 
8 03 m 
9 35 f 
10 35 f 

मैं क्या करना चाहते हैं क्या df $ spn सॉर्ट करने के लिए है और इसे केवल एक बार प्रकट होता है। उचित डीएफ $ लिंग के साथ-साथ:

spn sex 
1 01 f 
2 03 m 
3 22 m 
4 35 f 

मैं यह कैसे कर सकता हूं? बहुत बहुत शुक्रिया!

उत्तर

9
df <- df[order(df$spn), ] 
> df[!duplicated(df), ] 
    spn sex 
1 01 f 
6 03 m 
4 22 m 
9 35 f 
9
df2 = df[!duplicated(df), ] # Remove duplicated rows. 
df3 = df2[order(df2$spn), ] # Sort by the spn column. 

df3 
# spn sex 
#1 01 f 
#6 03 m 
#4 22 m 
#9 35 f 
+2

, यह वास्तव में तेजी से करता है, तो डुप्लिकेट पहले हटा दिया जाता है। – flodel

2

उपयोग अनूठा तो आदेश:

df <- unique(df) 
df[order(df$spn), ] 
देखने का एक दक्षता बिंदु से