एसएएस में एलएजी फ़ंक्शन का उपयोग कैसे करें (उदाहरण के साथ)


आप किसी वेरिएबल के स्थानांतरित मानों को पुनः प्राप्त करने के लिए एसएएस में एलएजी फ़ंक्शन का उपयोग कर सकते हैं।

यह फ़ंक्शन निम्नलिखित मूल सिंटैक्स का उपयोग करता है:

 lag1_value = lag (value);

डिफ़ॉल्ट रूप से, लैग किसी वेरिएबल का पिछला मान ढूंढता है।

हालाँकि, आप लैग2 , लैग3 , लैगन आदि का उपयोग कर सकते हैं। 2 विलंबों पर, 3 विलंबों पर, एन-लैग आदि पर मानों की गणना करने के लिए।

निम्नलिखित उदाहरण दिखाते हैं कि व्यवहार में लैग फ़ंक्शन का उपयोग कैसे करें।

उदाहरण 1: कुछ चरों के लिए परिवर्तित मानों की गणना

मान लीजिए कि हमारे पास एसएएस में निम्नलिखित डेटा सेट है जो लगातार दिनों में एक स्टोर द्वारा की गई कुल बिक्री को दर्शाता है:

 /*create dataset*/
data original_data;
    input day $sales;
    datalines ;
1 14
2 19
3 22
4 20
5 16
6 26
7 40
8 43
9 29
10 30
11 35
12 33
;
run ;

/*view dataset*/
proc print data =my_data; 

निम्नलिखित कोड दिखाता है कि 1, 2, और 3 दिनों की देरी वाली बिक्री के मूल्य की गणना कैसे करें:

 /*create new dataset that shows lagged values of sales*/
data new_data;
    set original_data;
    lag1_sales = lag(sales);
    lag2_sales = lag2(sales);
    lag3_sales = lag3(sales);
run ;

/*view new dataset*/
proc print data = new_data; 

एसएएस शिफ्ट फ़ंक्शन उदाहरण

तीन नए कॉलम (लैग1_सेल्स, लैग2_सेल्स, लैग3_सेल्स) बिक्री में क्रमशः एक, दो और तीन दिन की देरी प्रदर्शित करते हैं।

उदाहरण 2: समूह द्वारा परिकलित स्थानांतरित मान

मान लीजिए कि हमारे पास एसएएस में निम्नलिखित डेटा सेट है जो लगातार दिनों में दो दुकानों द्वारा की गई कुल बिक्री दिखाता है:

 /*create dataset*/
data original_data;
    input store $sales;
    datalines ;
At 14
At 19
At 22
At 20
At 16
At 26
B40
B43
B29
B 30
B35
B 33
;
run ;

/*view dataset*/
proc print data = original_data; 

हम प्रति स्टोर 1-दिवसीय विलंबित बिक्री मूल्यों की गणना करने के लिए निम्नलिखित कोड का उपयोग कर सकते हैं:

 /*create new dataset that shows lagged values of sales by store*/
data new_data;
	set original_data;
	by store;
	lag1_sales = lag(sales);
	if first.store then lag1_sales = .;
run ;

/*view new dataset*/
proc print data = new_data; 

एसएएस समूह द्वारा ऑफसेट

लैग1_सेल्स कॉलम में मान प्रत्येक स्टोर के लिए 1-दिवसीय विलंबित बिक्री मान प्रदर्शित करते हैं।

ध्यान दें कि पंक्ति 7 में लैग1_सेल्स का मान खाली है क्योंकि इस पंक्ति के लिए एक दिन का अंतराल मान दूसरे स्टोर के लिए बिक्री मूल्य का प्रतिनिधित्व करता है।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि एसएएस में अन्य सामान्य कार्य कैसे करें:

एसएएस में डेटा को सामान्य कैसे करें
एसएएस में डुप्लिकेट कैसे हटाएं
एसएएस में लुप्त मानों को शून्य से कैसे बदलें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *