2013-06-21 6 views
7

मैंने डेटा फ्रेम के कॉलम को सारांशित किया है (इस डेटा को कॉल करें) जिसमें आईडी शामिल हैं इसलिए मुझे दिए गए कॉलम में प्रत्येक आईडी की कुल संख्या मिलती है। मैं इसे किसी अन्य डेटा फ्रेम में परिवर्तित करना चाहता हूं (इस TOTALNUM को कॉल करें), इसलिए मेरे पास दो कॉलम हैं। पहला कॉलम आईडी है और दूसरा कॉलम प्रत्येक आईडी की कुल संख्या है। क्या यह संभव है?सारांश आउटपुट को डेटा फ्रेम में कैसे परिवर्तित करें?

नमूना डेटा:

ids <- c(1,2,3,4,5,1,2,3,1,5,1,4,2,2,2) 
info <- c("A","B","C","A","B","C","A","B","C","A","B","C","A","B","C") 
DATA <- data.frame(ids, info) 
DATA$ids <- as.factor(DATA$ids) 

क्या मैं एक डेटा फ्रेम में डाल करने के लिए करना चाहते हैं: शीर्ष पंक्ति एक नया डेटा फ्रेम में पहले स्तंभ होगा। दूसरी पंक्ति एक नए डेटा फ्रेम में दूसरा कॉलम होगा।

summary(DATA$ids) 

यह मैं डेटा फ्रेम चाहते हैं क्या की तरह लग रहे करने के लिए है:

ids nums 
1  4 
2  5 
3  2 
4  2 
5  2 

धन्यवाद !!

उत्तर

5

अपने दृष्टिकोण के साथ, आप तथ्य यह है कि summaryids के प्रत्येक मान के लिए मायने रखता है का एक वेक्टर देता है, नाम के साथ का लाभ ले सकते: - और इस दृष्टिकोण और अधिक सरल है -

> my.summary <- summary(DATA$ids) 
> data.frame(ids=names(my.summary), nums=my.summary) 
    ids nums 
1 1 4 
2 2 5 
3 3 2 
4 4 2 
5 5 2 

या आप ids पर आधारित आवृत्ति तालिका बना सकते हैं और उसके बाद इसे डेटा फ्रेम में परिवर्तित कर सकते हैं:

> as.data.frame(table(ids), responseName="nums") 
    ids nums 
1 1 4 
2 2 5 
3 3 2 
4 4 2 
5 5 2 
+0

धन्यवाद- मुझे नहीं पता था कि यह इतना आसान था! दूसरा दृष्टिकोण मैंने इस्तेमाल किया था। – Sheila

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