एसएएस में रिटेन स्टेटमेंट का उपयोग कैसे करें (उदाहरण के साथ)
आप एक वैरिएबल निर्दिष्ट करने के लिए एसएएस में रिटेन स्टेटमेंट का उपयोग कर सकते हैं जिसका मान डेटा चरण के प्रत्येक पुनरावृत्ति की शुरुआत में लापता के रूप में सेट नहीं किया जाना चाहिए।
रिटेन स्टेटमेंट का उपयोग एसएएस में विभिन्न कार्यों के लिए किया जा सकता है, लेकिन यहां तीन सबसे आम उपयोग के मामले हैं:
केस 1: संचयी योग की गणना करने के लिए RETAIN का उपयोग करें
data new_data;
set original_data;
retain cum_sum;
cum_sum + values_variable;
run ;
केस 2: प्रति समूह संचयी योग की गणना करने के लिए RETAIN का उपयोग करें
data new_data;
set original_data;
by grouping_variable
retain cum_sum_by_group;
if first.grouping_variable then cum_sum_by_group = values_variable;
else cum_sum_by_group = cum_sum_by_group + values_variable;
run ;
केस 3: प्रति समूह संचयी गणना की गणना करने के लिए RETAIN का उपयोग करें
data new_data;
set original_data;
by grouping_variable
retain count_by_group;
if first.grouping_variable then count_by_group = 1 ;
else count_by_group = count_by_group + 1 ;
run ;
निम्नलिखित उदाहरण दिखाते हैं कि एसएएस में निम्नलिखित डेटासेट के साथ व्यवहार में प्रत्येक मामले का उपयोग कैसे किया जाए जो विभिन्न दुकानों द्वारा लगातार दिनों में की गई बिक्री को दर्शाता है:
/*create dataset*/
data original_data;
input store $sales;
datalines ;
At 4
AT 5
At 2
B 6
B 3
B5
C 3
C 8
C 6
;
run ;
/*view dataset*/
proc print data = original_data;
उदाहरण 1: चालू राशि की गणना करने के लिए RETAIN का उपयोग करें
निम्नलिखित कोड दिखाता है कि डेटा सेट में एक नया कॉलम बनाने के लिए RETAIN स्टेटमेंट का उपयोग कैसे करें जो बिक्री का चालू योग प्रदर्शित करता है:
/*calculate cumulative sum of sales*/
data new_data;
set original_data;
retain cum_sales;
cum_sales+sales;
run ;
/*view results*/
proc print data = new_data;
Cum_sales नामक नए कॉलम में बिक्री कॉलम में मूल्यों का संचयी योग शामिल है।
उदाहरण के लिए:
- पंक्ति 1: 4 पर संचयी योग
- पंक्ति 2 पर संचयी योग: 4 + 5 = 9
- पंक्ति 3 पर संचयी योग: 4 + 5 + 2 = 11
और इसी तरह।
इस उदाहरण में, RETAIN स्टेटमेंट cum_sales नामक वेरिएबल को शून्य पर सेट करता है, और फिर DATA चरण के प्रत्येक पुनरावृत्ति पर यह केवल cum_sales के चल रहे कुल में नया बिक्री मूल्य जोड़ता है।
उदाहरण 2: प्रति समूह संचयी योग की गणना करने के लिए RETAIN का उपयोग करें
निम्नलिखित कोड दिखाता है कि डेटा सेट में एक नया कॉलम बनाने के लिए रिटेन स्टेटमेंट का उपयोग कैसे करें जो स्टोर द्वारा बिक्री का संचयी योग प्रदर्शित करता है:
/*calculate cumulative sum of sales by store*/
data new_data;
set original_data;
by store;
retain cum_sales_by_store;
if first.store then cum_sales_by_store = sales;
else cum_sales_by_store = cum_sales_by_store + sales;
run ;
/*view results*/
proc print data =new_data;
Cum_sales_by_store नामक नए कॉलम में स्टोर द्वारा समूहीकृत बिक्री कॉलम में मूल्यों का संचयी योग शामिल है।
इस उदाहरण में, RETAIN स्टेटमेंट cum_sales_by_store नामक वेरिएबल को शून्य पर सेट करता है, और फिर डेटा चरण के प्रत्येक पुनरावृत्ति पर, यह जांचता है कि स्टोर कॉलम में मान उस विशेष मान की पहली घटना थी या नहीं।
यदि यह पहली घटना थी, तो cum_sales_by_store का मान बिक्री कॉलम में मान पर सेट किया गया था। अन्यथा, बिक्री कॉलम में मान को cum_sales_by_store के मौजूदा मान में जोड़ा गया था।
उदाहरण 3: प्रति समूह संचयी गणना की गणना करने के लिए RETAIN का उपयोग करें
निम्नलिखित कोड दिखाता है कि डेटा सेट में एक नया कॉलम बनाने के लिए रिटेन स्टेटमेंट का उपयोग कैसे करें जो प्रति स्टोर बिक्री की संचयी संख्या प्रदर्शित करता है:
/*calculate cumulative count by store*/
data new_data;
set original_data;
by store
retain store_count;
if first.store then store_count = 1 ;
else store_count = store_count + 1 ;
run ;
/*view results*/
proc print data = new_data;
स्टोर_काउंट नामक नए कॉलम में प्रत्येक स्टोर की संचयी गिनती शामिल है।
इस उदाहरण में, RETAIN स्टेटमेंट स्टोर_काउंट नामक वेरिएबल को शून्य पर सेट करता है, और फिर, डेटा चरण के प्रत्येक पुनरावृत्ति पर, यह जांचता है कि स्टोर कॉलम में मान उस विशेष मान की पहली घटना थी या नहीं।
यदि यह पहली घटना थी, तो स्टोर_काउंट का मान 1 पर सेट किया गया था। अन्यथा, स्टोर_काउंट के मौजूदा मान में 1 का मान जोड़ा गया था।
अतिरिक्त संसाधन
निम्नलिखित ट्यूटोरियल बताते हैं कि एसएएस में अन्य सामान्य कार्य कैसे करें:
एसएएस में प्रति समूह योग की गणना कैसे करें
एसएएस में प्रति समूह औसत की गणना कैसे करें
एसएएस में मूविंग एवरेज की गणना कैसे करें