2017-01-31 4 views
1

Wie generiert man eine sich wiederholende Reihe von Zahlen in einer Spalte in SAS, von 1 bis x?Wie füge ich eine Spalte mit wiederholten Nummern in SAS hinzu?

Angenommen x 3.

Daten ist wie:

name age 
A 15 
D 16 
C 21 
B 35 
E 79 
F 85 
G 64 

und ich möchte eine Spalte mit dem Namen Liste hinzuzufügen, wie folgt aus:

name age list 
A 15 1 
D 16 2 
C 21 3 
B 35 1 
E 79 2 
F 85 3 
G 64 1 
+0

Wer 'person3' in Ihren Beispieldaten ist, und wie können wir wissen, ob sie bei der Arbeit sind oder nicht? – user667489

+0

Es ist, als hätten wir 8 Leute und müssen diesen Leuten Arbeit zuweisen, und wenn einige von ihnen heute nicht arbeiten, sie sind in Urlaub oder krank, müssen wir die Arbeit den anderen Leuten zuweisen. Hier benutze ich 3 Leute nur um es einfacher zu machen. – juanbin

Antwort

0

Der einfachste Weg, die ich denken kann Verwenden Sie mod und den Iterationszähler.

data want; 
    set have; 
    list = 1 + mod(_N_ - 1,3); 
run; 

mod ist die Modulo-Funktion (der Rest nach dem Dividieren ergibt).

Also, wenn Sie wollen, dass basierend auf einem Parameter variieren, nun, ändern Sie die 3 zu einem Parameter.

%let num_atwork = 2; 

data want; 
    set have; 
    list = 1 + mod(_N_ - 1, &num_atwork.); 
run; 
+0

Liebe diese Idee! Danke vielmals! – juanbin

2
data class; 
    set sashelp.class; 
    if list>=3 then list=0; 
    list+1; 
run; 
+0

Vielen Dank für Ihre Antwort! – juanbin

Verwandte Themen