2011-11-26 18 views
15

मैं डेटासेट के क्रमबद्ध कॉलम के सूचकांक का उपयोग करने का प्रयास कर रहा हूं। मैं पूरे डेटासेट को एक क्रमबद्ध कॉलम द्वारा पुन: व्यवस्थित करना चाहता हूं।आर: अवैध सबस्क्रिप्ट प्रकार 'सूची'

area.sort<-sort(xsample$area1, index.return=TRUE)[2] 

आउटपुट एक सूची है, इसलिए मैं इसे पूरे डेटासेट के माध्यम से इंडेक्स का उपयोग नहीं कर सकता।

Error in xj[i] : invalid subscript type 'list' 

किसी असूचीबद्ध का उपयोग कर सुझाव दिया है, लेकिन मैं ix* से छुटकारा पाने के लिए नहीं कर सकते हैं। कोई विचार? धन्यवाद

> area.sort<-unlist(area.sort) 

ix1 ix2 ix3 ix4 ix5 ix6 ix7 ix8 ix9 ix10 ix11 ix12 ix13 
    45 96 92 80 53 54 24 21 63 81 40 66 64 

उत्तर

16

सूचकांक के साथ क्रमबद्ध करने के लिए कॉल। return=TRUE दो घटकों के साथ एक सूची देता है: एक्स और ix। [2] के साथ इंडेक्सिंग सूची का एक सबसेट देता है - अभी भी एक सूची।

यदि आप [[2]] का उपयोग कर अनुक्रमित करते हैं तो इसे बेहतर काम करना चाहिए। यह सूची में तत्व देता है। लेकिन $ ix का उपयोग कर इंडेक्सिंग शायद थोड़ा स्पष्ट है।

लेकिन तब फिर से, यदि आप केवल अनुसार क्रमबद्ध सूचकांक की जरूरत है, तो आप कॉल करना चाहिए order बजाय sort ...

+4

+1 'order' उल्लेख है, जो है क्या वे शायद बजाय चाहते हैं के लिए। – joran

+0

बहुत बढ़िया, आदेश अच्छी तरह से काम करता है; और डबल ब्रैकेट भी अच्छी तरह से काम करते हैं, धन्यवाद –