2017-01-01 2 views
0

Ich war die effizienteste Art und Weise zu halten Anzahl der Beobachtungen in früheren Jahren fragen:SAS: Zählung der Einzelwerte für Vorjahre (halten count)

ich Daten haben, die wie folgt aussieht:

id store year count 

1 green 2011 3   
2 green 2011 3   
3 green 2011 3   
4 green 2012 1   
5 blue 2012 1   
6 blue 2013 1   
7 red 2011 1   
8 red 2012 1   
9 red 2013 1 

Im Grunde habe ich die Häufigkeit der IDs gezählt und sie nach Geschäft und Jahr gruppiert, um zu verfolgen, wie viele Beobachtungen für dieses Jahr im Geschäft eingekauft wurden.

Nun, was ich tun möchte, ist eine Zählung der Beobachtungen für das/die Vorjahr (e).

gewünschte Ausgabe:

> id store year count Count_Previous_Years 
> 
> 1 green 2011 3  0 
> 
> 2 green 2011 3  0 
> 
> 3 green 2011 3  0 
> 
> 4 green 2012 1  3 
> 
> 5 blue 2012 1  0 
> 
> 6 blue 2013 1  1 
> 
> 7 red 2011 1  0 
> 
> 8 red 2012 1  1 
> 
> 9 red 2013 1  2 

Gibt es eine Möglichkeit, dies in SQL zu tun? d.h. Count (id) mit einer "where" Aussage für das Vorjahr?

Antwort

0

könnte dies in einem Daten Schritt getan werden, wie folgt:

proc sort data=a;                              
by store year;run;                              

data b;                                
set a;                                 
    by store year;                               
    retain hold_year count2 previous; 

    if first.store then do;                             
    hold_year = year;                              
    previous = 0;                               
    count2 = 0;                                
    end;                                  
    if year > hold_year then do;                            
    previous = count2; 
    hold_year = year;                          
end;                                  
count2=count2+1;                               
run;    
+0

Perfect, das ist genau das, was ich brauche. Vielen Dank. – User1414

+0

Wenn die Antwort für Sie funktioniert, können Sie sie abstimmen und als ausgewählte Antwort auswählen. Vielen Dank – DCR

Verwandte Themen