मैं एक निम्न डेटा फ्रेममेरी dataframe ऑर्डर करने के लिए कैसे lexicographicaly
a = data.frame(a=c(1,2,3,4,5,6,7),b=c(1,2,3,10,12,21,4),c=c(1,2,10,11,"X","Y",3))
> a
a b c
1 1 1 1
2 2 2 2
3 3 3 10
4 4 10 11
5 5 12 X
6 6 21 Y
7 7 4 3
मैं lexicographical क्रम में पूरे डेटा फ्रेम सॉर्ट करने के लिए है, ताकि उत्पादन (उदाहरण के लिए, स्तंभ "सी")
की तरह होना चाहिए चाहते हैं> a[,"c"]
[1] 1 2 3 10 11 X Y
मैंने कोशिश की और मैं अलग जवाब
indata <- a[do.call(order,a[,c("c","a","b")]),]
> indata[,"c"]
[1] 1 10 11 2 3 X Y
Levels: 1 10 11 2 3 X Y
मैं gtools की कोशिश की, mixedorder पैकेज एक geting हूँ nd एक स्तंभ पर ठीक काम किया:
> a[mixedorder(a$c),]
a b c
1 1 1 1
2 2 2 2
3 3 3 10
4 4 10 11
5 5 12 X
6 6 21 Y
7 7 4 3
लेकिन यह अगर मैं एकाधिक स्तंभों में शामिल हैं काम नहीं करता:
> a[with(a,order(mixedorder(c),mixedorder(b),mixedorder(a))),]
a b c
1 1 1 1
2 2 2 2
4 4 10 11
5 5 12 X
6 6 21 Y
7 7 4 3
3 3 3 10
हालांकि मैं उम्मीद कर रहा हूँ:
a b c
1 1 1 1
2 2 2 2
4 7 4 3
5 3 3 10
6 4 10 11
7 5 12 X
3 6 21 Y
आपको और अधिक स्पष्ट होना होगा। क्या आप स्तंभ 'सी', या कॉलम 'c' के संबंध में संपूर्ण डेटा फ्रेम को सॉर्ट करना चाहते हैं? – joran
मैं सी के संबंध में पूरे डेटा फ्रेम को सॉर्ट करना चाहता हूं। मैंने आसान समझने के लिए एक [, "सी"] दिया – user1631306