2013-02-08 7 views
22

के लिए त्रुटि 'एक्स' परमाणु होना चाहिए मेरे पास एक बहुत ही सरल सरणी है जिस पर मैं आरओसी वक्र विश्लेषण चलाने के लिए चाहता हूं। लेकिन पहले, जब मैं आदेश table[1]<-factor(table[1]) का उपयोग कर फैक्टर प्रकार में डेटा के लिए मजबूर करने की कोशिश, मैं त्रुटिडीएफ [कॉल] के साथ कॉलम एक्सेस करना देता है: 'sort.list'

Error in sort.list(y) : 'x' must be atomic for 'sort.list' 
Have you called 'sort' on a list? 
डेटा से

कुछ नमूना पंक्तियों

नीचे दे रहे हैं
GRADE TRUE-GRADE 

benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Benign 
benign Malignant 
benign Malignant 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Benign 
indeterminate Malignant 
indeterminate Malignant 
indeterminate Malignant 
likely benign Benign 
likely benign Benign 
likely benign Benign 

कोई मुझे बता सकते हैं कि मैं क्या कर रहा हूँ गलत कर रहे हो str (टेबल) का परिणाम नीचे दी गई है:

data.frame': 127 obs. of 2 variables: 
$ GRADE  : Factor w/ 5 levels "benign","indeterminate",..: 1 1 1 1 1 1 1 1 1 

$ BENIGN.MALIGN: Factor w/ 2 levels "Benign","Malignant": 1 1 1 1 1 1 1 1 1 1 ... 

उत्तर

31

समारोह [ एक डेटा फ्रेम करने के लिए लागू एक डेटा फ्रेम (यदि केवल एक ही तर्क प्रयोग किया जाता है) देता है। यदि आप एक कॉलम तक पहुंचना चाहते हैं और इसे वेक्टर के रूप में वापस करना चाहते हैं, तो आपको इसके बजाय [[ का उपयोग करना होगा।

table[1] <- factor(table[[1]]) 

लेकिन यह आवश्यक नहीं हो सकता है, क्योंकि दोनों स्तंभों कारकों (अपने str उत्पादन देखें) कर रहे हैं।

वैसे: table किसी ऑब्जेक्ट के लिए अच्छा नाम नहीं है, क्योंकि यह मूल आर फ़ंक्शन का नाम भी है।

+0

मैंने वेक्टर निकालने के लिए 'as.vector (table [1]) 'का उपयोग करने की कोशिश करने में इतनी देर बिताई। यह 'टेबल [[1]] 'के समान उत्पादन क्यों नहीं करता है? –

+0

@alexpmil यह 'असूचीबद्ध (तालिका [1]) 'के साथ काम करता है। –

संबंधित मुद्दे