2013-06-04 10 views
9

मैं आर में निम्नलिखित भाग गया और matrix() और as.matrix() दोनों के लिए एक ही उत्पादन प्राप्त किया और अब मुझे यकीन है कि क्या उन दोनों के बीच अंतर यह है नहीं कर रहा हूँ:आर में matrix() और as.matrix() के बीच क्या अंतर है?

> a=c(1,2,3,4) 
> a 
[1] 1 2 3 4 
> matrix(a) 
    [,1] 
[1,] 1 
[2,] 2 
[3,] 3 
[4,] 4 
> as.matrix(a) 
    [,1] 
[1,] 1 
[2,] 2 
[3,] 3 
[4,] 4 
+4

दस्तावेज़ीकरण पढ़ें। उदाहरण के लिए, 'डीएफ <- data.frame (ए = 1: 5, बी = 6: 10) के आउटपुट की तुलना करें; as.matrix (DF); मैट्रिक्स (DF) '। – Roland

+1

हाँ, लेकिन मैं data.frame से निपट नहीं रहा हूं यानी मेरा मैट्रिक्स केवल संख्यात्मक डेटा है। –

+2

आपने इन कार्यों के बीच अंतर के लिए कहा। अंतर दस्तावेज है और मैंने आपको एक उदाहरण दिखाया है। यह कार्य (विशिष्ट परिस्थितियों में) एक ही परिणाम को आपके प्रश्न के उत्तर पर कोई प्रभाव नहीं डाल सकता है। – Roland

उत्तर

9

matrixdata और आगे तर्क nrow और ncol लेता है।

?matrix 
If one of ‘nrow’ or ‘ncol’ is not given, an attempt is made to 
infer it from the length of ‘data’ and the other parameter. If 
neither is given, a one-column matrix is returned. 

as.matrix विभिन्न प्रकार के लिए अलग व्यवहार के साथ एक तरीका है, लेकिन मुख्य रूप से वापस एक n * मी इनपुट से एक n * मीटर मैट्रिक्स देने के लिए।

?as.matrix 
‘as.matrix’ is a generic function. The method for data frames 
will return a character matrix if there is only atomic columns and 
any non-(numeric/logical/complex) column, applying ‘as.vector’ to 
factors and ‘format’ to other non-character columns. Otherwise, 
the usual coercion hierarchy (logical < integer < double < 
complex) will be used, e.g., all-logical data frames will be 
coerced to a logical matrix, mixed logical-integer will give a 
integer matrix, etc. 

उनके बीच के अंतर मुख्य रूप से इनपुट के आकार से आता है, matrix आकार के बारे में परवाह नहीं है, as.matrix करता है और इसे बनाए रखने जाएगा (लेकिन जानकारी के इनपुट के लिए वास्तविक तरीकों पर निर्भर है, और में अपने मामले एक आयामरहित वेक्टर एकल स्तंभ मैट्रिक्स से मेल खाती है।) अगर इनपुट कच्चे, तार्किक, पूर्णांक, आंकिक, चरित्र, या जटिल, आदि

4

matrixनिर्माणों अपनी पहली से एक मैट्रिक्स है यह कोई फर्क नहीं पड़ता पंक्तियों और स्तंभों की एक निश्चित संख्या के साथ तर्क। यदि आपूर्ति की गई वस्तु वांछित आउटपुट के लिए पर्याप्त नहीं है, तो matrix इसके तत्वों को रीसायकल करेगा: उदाहरण के लिए, matrix(1:2), nrow=3, ncol=4)। इसके विपरीत, यदि ऑब्जेक्ट बहुत बड़ा है, तो अधिशेष तत्वों को हटा दिया जाएगा: उदाहरण के लिए, matrix(1:20, nrow=3, ncol=4)

as.matrix कनवर्ट करता है मैट्रिक्स में इसका पहला तर्क, जिसके आयाम इनपुट से अनुमानित होंगे।

0

मैट्रिक्स मानों के दिए गए सेट से एक मैट्रिक्स बनाता है। as.matrix एक मैट्रिक्स में अपना तर्क बदलने का प्रयास करता है।

आगे, मैट्रिक्स() तार्किक मैट्रिक्स को तार्किक रखने के प्रयास करता है, यानी, सममित, त्रिकोणीय या विकर्ण वाले विशेष रूप से संरचित मैट्रिक्स को निर्धारित करने के लिए। as.matrix एक सामान्य कार्य है। डेटा फ्रेम के लिए विधि एक चरित्र मैट्रिक्स लौटाएगी यदि केवल परमाणु कॉलम और कोई गैर- (संख्यात्मक/तार्किक/जटिल) कॉलम है, जो कारक के रूप में लागू होता है और अन्य गैर-वर्ण स्तंभों के प्रारूप में होता है। अन्यथा, हमेशा की तरह बलात्कार पदानुक्रम (तार्किक < पूर्णांक < डबल < जटिल) का उपयोग किया जाएगा, जैसे, सभी तार्किक डेटा फ्रेम एक तार्किक मैट्रिक्स के लिए मजबूर हो जाएगा, मिश्रित तार्किक-पूर्णांक एक पूर्णांक मैट्रिक्स, आदि

दे देंगे As.matrix के लिए डिफ़ॉल्ट विधि as.vector (x), और इसलिए उदा चरित्र वैक्टर के लिए coerces कारक।

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