2012-06-23 10 views
12

मेरे पास डेटा फ्रेम है और मैं सीखना चाहता हूं कि सारांश इसकी जानकारी कैसे उत्पन्न करता है। विशेष रूप से, सारांश कारक के प्रत्येक स्तर में तत्वों की संख्या के लिए गणना कैसे उत्पन्न करता है। मैं सारांश का उपयोग कर सकता हूं, लेकिन मैं सीखना चाहता हूं कि कारकों के साथ बेहतर तरीके से कैसे काम करना है। जब मैं कोशिश करता हूं? सारांश, मुझे बस सामान्य जानकारी मिलती है। क्या यह असंभव है क्योंकि यह बाइटकोड में है?डेटा फ्रेम के लिए मैं सारांश() के लिए कोड कैसे पढ़ सकता हूं?

+1

कंसोल पर '> summary.data.frame' आज़माएं। – kohske

+0

'विधियां' देखें और 'विधियों (सारांश)' को आजमाएं, जो आपको 'summary.data.frame' पर ले जाना चाहिए, जिसे 'सारांश' में दस्तावेज किया गया है। –

+0

यह क्यू एंड ए और भी निश्चित है: http://stackoverflow.com/questions/19226816/how-can-i-view-the-source-code-for-a- कार्यक्षमता –

उत्तर

32

हम जब आप लिखते हैं summary है

> summary 
function (object, ...) 
UseMethod("summary") 
<bytecode: 0x0456f73c> 
<environment: namespace:base> 

यह है कि सारांश एक सामान्य समारोह है और कई तरीकों से इसे से जुड़ी है हमें बता रहा है क्या देखते हैं। क्या उन तरीकों वास्तव में कहा जाता है कि हम कोशिश कर सकते हैं

> methods(summary) 
[1] summary.aov    summary.aovlist   summary.aspell*   
[4] summary.connection  summary.data.frame  summary.Date   
[7] summary.default   summary.ecdf*   summary.factor   
[10] summary.glm    summary.infl   summary.lm    
[13] summary.loess*   summary.manova   summary.matrix   
[16] summary.mlm    summary.nls*   summary.packageStatus* 
[19] summary.PDF_Dictionary* summary.PDF_Stream*  summary.POSIXct   
[22] summary.POSIXlt   summary.ppr*   summary.prcomp*   
[25] summary.princomp*  summary.srcfile   summary.srcref   
[28] summary.stepfun   summary.stl*   summary.table   
[31] summary.tukeysmooth* 

    Non-visible functions are asterisked 

यहाँ हम सब summary समारोह के साथ जुड़े तरीकों देखें। इसका अर्थ यह है कि जब आप किसी डेटा.फ्रेम पर सारांश कॉल करते हैं तो एक एलएम ऑब्जेक्ट पर सारांश कॉल करते समय अलग कोड होता है। यह अच्छा है क्योंकि हम उन दो वस्तुओं के लिए सारांश को उसी तरह से आयोजित करने की अपेक्षा नहीं करेंगे।

कि चलाया जाता है जब आप एक data.frame पर सारांश फोन कोड को देखने के लिए आप बस के रूप में तरीकों सूची में दिखाया टाइप कर सकते हैं

summary.data.frame 

। आप इसकी जांच कर सकते हैं और इसका अध्ययन कर सकते हैं और मुद्रित कोड के साथ जो भी चाहें कर सकते हैं। आपने उल्लेख किया है कि आप कारकों में रुचि रखते थे ताकि आप शायद summary.factor के आउटपुट की जांच कर सकें। अब आप देख सकते हैं कि मुद्रित कुछ तरीकों में उनके आगे एक तारांकन (*) था जिसका अर्थ है कि वे दिखाई नहीं दे रहे हैं। इसका अनिवार्य रूप से मतलब है कि आप कोड को देखने का प्रयास करने के लिए केवल फ़ंक्शन का नाम टाइप नहीं कर सकते हैं।

> summary.prcomp 
Error: object 'summary.prcomp' not found 
हालांकि

, अगर आप को देखने के लिए क्या कोड वास्तव में आप इसे देखने के लिए getAnywhere समारोह का उपयोग कर सकते है निर्धारित कर रहे हैं।

> getAnywhere(summary.prcomp) 
A single object matching ‘summary.prcomp’ was found 
It was found in the following places 
    registered S3 method for summary from namespace stats 
    namespace:stats 
with value 

function (object, ...) 
{ 
    vars <- object$sdev^2 
    vars <- vars/sum(vars) 
    importance <- rbind(`Standard deviation` = object$sdev, `Proportion of Variance` = round(vars, 
     5), `Cumulative Proportion` = round(cumsum(vars), 5)) 
    colnames(importance) <- colnames(object$rotation) 
    object$importance <- importance 
    class(object) <- "summary.prcomp" 
    object 
} 
<bytecode: 0x03e15d54> 
<environment: namespace:stats> 

उम्मीद है कि यह भविष्य में आर में कोड को अधिक आसानी से देखने में आपकी सहायता करता है।

और भी जानकारी के लिए आप Volume 6/4 of The R Journal (warning, pdf) देख सकते हैं और यूवे लिग के "आर हेल्प डेस्क" अनुभाग को पढ़ सकते हैं जो आर कार्यों के स्रोत कोड को देखने के साथ संबंधित है।

+1

अच्छी तरह से समझाया गया। 'विधियों (वर्ग = डेटा.फ्रेम) 'का भी उल्लेख किया जा सकता है। – Roland

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