2011-12-11 5 views
5

मैं इस तालिका की आवृत्तियों को निकालने के लिए एक समारोह लिखने के लिए कोशिश कर रहा हूँ:आर में एक तालिका से वेक्टर के रूप में गणना कैसे निकालें?

0 1 2 3 4 5 6 7 
30 22 9 12 2 5 1 16 

तो मैं c(30, 22, 9, 12, 2, 5, 1, 16) प्राप्त करना चाहते हैं।

प्रत्येक बार जब मैं फ़ंक्शन चलाता हूं तो तालिका बदलती है, इसलिए मुझे कुछ ऐसी चीज चाहिए जो तालिका से स्वचालित रूप से जानकारी निकाल सके, इसलिए मैंने प्रत्येक बार एक c() फ़ंक्शन नहीं लिखा है।

उत्तर

14

यह ईमानदारी से कोई आसान नहीं हो सकता है।

> set.seed(42)       ## be reproducible 
> X <- sample(1:5, 50, replace=TRUE) ## our data 
> table(X)        ## our table 
X 
1 2 3 4 5 
7 6 9 10 18 
> str(table(X))       ## look at structure of object 
'table' int [1:5(1d)] 7 6 9 10 18 
- attr(*, "dimnames")=List of 1 
    ..$ X: chr [1:5] "1" "2" "3" "4" ... 
> as.numeric(table(X))     ## and just convert to vector 
[1] 7 6 9 10 18 
> 

और संपूर्णता के लिए, दो और अधिक तरीके डेटा प्राप्त करने के: आप इस को समझ नहीं सकता, तो आप बहुत सारे अन्य समस्याओं के होगा आर के

> unname(table(X))      ## jdropping names reduces to the vector 
[1] 7 6 9 10 18 
> table(X)[]       ## or simply access it 
[1] 7 6 9 10 18 
> 
+0

हाँ खेद इम नए ' टेबल 'int [1 (1 डी)] 1 - एटीआर (*, "dimnames") = 1 की सूची .. $ टी: सीआर "सत्य" मेरे पास टेबल के लिए मिलने वाली संरचना है। मुझे यकीन नहीं है क्यों। – user1021000

+0

फिर हो सकता है कि जिस वस्तु को आपने 'टेबल() 'पर चलाया था, केवल एक ही मूल्य था। अपने उत्तर में कोड को अपने अंत में दोबारा चलाएं, और चीजों को समझने की कोशिश करें। –

+0

धन्यवाद मुझे अब मिल गया। मुझे बहुत मदद की! – user1021000

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