Verwendung der lag-funktion in sas (mit beispielen)


Sie können die LAG- Funktion in SAS verwenden, um verschobene Werte einer Variablen abzurufen.

Diese Funktion verwendet die folgende grundlegende Syntax:

 lag1_value = lag (value);

Standardmäßig findet lag den vorherigen Wert einer Variablen.

Sie können jedoch lag2 , lag3 , lagn usw. verwenden. um Werte bei 2 Verzögerungen, bei 3 Verzögerungen, bei n-Verzögerungen usw. zu berechnen.

Die folgenden Beispiele zeigen, wie Sie die Lag-Funktion in der Praxis nutzen können.

Beispiel 1: Für bestimmte Variablen werden verschobene Werte berechnet

Nehmen wir an, wir haben den folgenden Datensatz in SAS, der die Gesamtverkäufe eines Geschäfts an aufeinanderfolgenden Tagen zeigt:

 /*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; 

Der folgende Code zeigt, wie der Wert von Verkäufen mit einer Verzögerung von 1, 2 und 3 Tagen berechnet wird:

 /*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; 

Beispiel für eine SAS-Shift-Funktion

Die drei neuen Spalten (lag1_sales, lag2_sales, lag3_sales) zeigen Umsätze mit einer Verzögerung von jeweils einem, zwei bzw. drei Tagen an.

Beispiel 2: verschobene Werte nach Gruppe berechnet

Nehmen wir an, wir haben den folgenden Datensatz in SAS, der die Gesamtverkäufe zweier Geschäfte an aufeinanderfolgenden Tagen zeigt:

 /*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; 

Wir können den folgenden Code verwenden, um die um einen Tag verzögerten Verkaufswerte pro Geschäft zu berechnen:

 /*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; 

SAS-Offset nach Gruppe

Die Werte in der Spalte lag1_sales zeigen die um einen Tag verzögerten Verkaufswerte für jedes Geschäft an.

Beachten Sie, dass der Wert von lag1_sales in Zeile 7 leer ist, da der Verzögerungswert eines Tages für diese Zeile einen Verkaufswert für ein anderes Geschäft darstellt.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in SAS ausführen:

So normalisieren Sie Daten in SAS
So entfernen Sie Duplikate in SAS
So ersetzen Sie fehlende Werte in SAS durch Null

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert