sas एसएएस आउटपुट डेटा सेट को समझना



(3)

क्वेंटिन के साथ सहमत आपको याद रखना चाहिए कि वहां एसएएस सिस्टम हैं जो 80 के दशक में लिखे गए कोड चल रहे हैं। एसएएस का एक बड़ा सिरदर्द होगा, अगर उन्होंने हर टीम को सभी प्रक्रियाओं को फिर से लिखने के लिए मजबूर किया और फिर अपने ग्राहकों को अपने सभी कोड बदलने के लिए मजबूर किया। एसएएस 60 के दशक के आसपास रहा है और सिंटेक्स की जैविक वृद्धि अपेक्षा की जाती है।

एफडब्ल्यूआईड्यू (WWW), जिसमें एक OUT= स्टेटमेंट होता है, कोई भी ग्राफिकल आउटपुट नहीं होने वाली चीज़ों पर समझ में आता है I IE PROC SORT या PROC TRANSPOSE

एसएएस के पास कई रूप हैं, जो किसी प्रक्रिया के भीतर से आउटपुट डेटा सेट बनाने के लिए उपयोग करते हैं। यह हमेशा स्पष्ट नहीं होता है कि एक विशेष प्रक्रिया एक डेटा सेट उत्पन्न कर सकती है या नहीं, और अगर ऐसा लगता है कि यह हमेशा स्पष्ट नहीं होता है कि कैसे।

मेरे सिर के ऊपर से, यहां कुछ उदाहरण दिए गए हैं जो सिंटैक्स अलग-अलग हो सकते हैं।

उदाहरण 1

proc sort data = sashelp.baseball out = baseball_sorted;
  by
    league
    division
  ;
run;

उदाहरण 2

proc means noprint data = baseball_sorted;
  by
    league
    division
  ;
  var nHits;
  output 
    out = baseball_avg_hits (drop = _TYPE_ _FREQ_)
    mean = mean_hits
  ;   
run;

उदाहरण 3

ods exclude all;
ods output 
  statistics  = baseball_statistics
  equality    = baseball_ftest
;
proc ttest data = baseball_sorted;
  class league;
  var nHits;
run;
ods exclude none;

उदाहरण 4

PROC ANOVA OUTSTAT = विकल्प

ऐसा लगभग लगता है जैसे एसएएस ने इन सभी विवेकों को लागू किया है। क्या एसएएस सिंटैक्स ने कुछ सुसंगत दृष्टिकोण से निर्देशित एक डेटा सेट बनाने के बारे में बताया है जो मैं देख नहीं रहा हूं या क्या यह सचमुच सरल और मनमाना है?


Answer #1

जिस तरह से मैं इसे देखता हूं, वहां आउटपुट डेटा सेट निर्दिष्ट करने के चार मुख्य तरीके हैं।

  1. PROC स्टेटमेंट में आप कुछ प्रकार के आउटपुट स्टेटमेंट या विकल्प, जैसे OUT = OUTEST = निर्दिष्ट करने में सक्षम हो सकते हैं।
  2. प्रक्रिया के मुख्य बयान में, अर्थात् मॉडल / तालिका में विकल्प हो सकते हैं जो आउटपुट के लिए अनुमति देते हैं। यानी PROC FREQ के पास एक संक्षिप्त विवरण पर OUT = है
  3. एक प्रक्रिया के भीतर एक स्पष्ट आउटपुट वक्तव्य ये आमतौर पर पुराने प्रक्रियाओं से हैं अर्थात् प्रोसी अर्थ
  4. ओडीएस तालिकाओं जो अपेक्षाकृत नई पद्धतियां हैं, इन दिनों इन्हें अधिक बार प्रयोग किया जाता है क्योंकि प्रारूप आपको देखने की अपेक्षा के साथ संरेखित करता है।

हां, जांच करने के लिए कई जगह हैं, लेकिन सौभाग्य से प्रक्रियाओं के लिए एसएएस दस्तावेज विकल्प के साथ अपेक्षाकृत स्पष्ट हैं और आउटपुट को कैसे उपयोग / निर्दिष्ट करते हैं

अगर मुझे कुछ भी याद आ गया है जो टिप्पणियों में अलग-अलग पोस्ट लगता है और मैं इसे अपडेट कर सकता हूं।

पुनश्च। हालांकि एसएएस निश्चित रूप से बुरा नहीं है, एक एक्सएलएसएक्स फ़ाइल निर्यात करने के लिए पायथन में विभिन्न पैकेज / मॉड्यूल को नेविगेट करने का प्रयास करना सीधे आगे नहीं है कुछ पैकेज कुछ विकल्पों का समर्थन नहीं करते हैं अन्य मैंने यह पूछने पर छोड़ दिया है कि इन दिनों क्यों और इस बिंदु पर अलग-अलग भाषाओं की अजीबताओं के रूप में इसे स्वीकार करते हैं।


Answer #2

प्रोसी कोड के लिए, डेटा आउटपुट करने के लिए सिंटैक्स अक्सर उस प्रक्रिया के लिए विशिष्ट होता है, जो प्रायः विली-न्ली लगता है। (आपके उदाहरण 1, 2, 4) मुझे लगता है कि प्रोसी डेवलपर्स को बहुत अधिक आजादी दी जाती है, और याद रखें कि इनमें से कई प्रोसीस 30+ साल का हैं

आउटपुट डिलिवरी सिस्टम (ओडीएस, आपका उदाहरण 3) के बारे में अच्छी बात यह है कि यह प्रक्रिया के बावजूद आंकड़ों को आउटपुट करने के लिए एक वाक्य रचना प्रदान करता है। तो आप (लगभग?) किसी भी प्रोसी के साथ ODS OUTPUT कथन का उपयोग कर सकते हैं आउटपुट ऑब्जेक्ट्स के नाम और स्ट्रक्चर्स निश्चित रूप से प्रोसी के बीच भिन्न होंगे। इसलिए यदि आप एक सुसंगत दृष्टिकोण तलाश रहे हैं, तो मैं ओडीएस आउटपुट का इस्तेमाल करने पर ध्यान केंद्रित करूँगा ओडीएस को वी 7 में जोड़ा गया था (मुझे लगता है)।

एक आउटपुट डेटासेट का एक उदाहरण ढूंढने की कोशिश करना दिलचस्प होगा जो कि एक प्रोसी द्वारा किया जा सकता था लेकिन ओडीएस आउटपुट द्वारा नहीं किया जा सकता था मुझे उम्मीद है कि कोई भी नहीं है यदि ऐसा मामला है, तो आप उत्तरदायित्व कोड के रूप में प्रोपसी में आउटपुट विवरणों / विकल्पों की श्रेणी पर विचार कर सकते हैं।