Gleiche Datensätze mit First aufzähen

Hallo,

ich habe folgendes Problem:
ich muss die doppelten Datensäzte so aufbereiten, dass diese so aussehen:

musterman max str1 ort1 1
musterman max str1 ort1 2
musterman may str1 ort1 1
musterman may str1 ort1 2

ich bekomme aber allerdings nur das:

musterman max str1 ort1 1
musterman max str1 ort1 2
musterman may str1 ort1 3
musterman may str1 ort1 4

mein vorgehen:
Test DS:

data test1;
var1='mustermann';
var2='max';
var3='str1';
var4='ort1';output;
var1='mustermann';
var2='max';
var3='str1';
var4='ort1';output;

var1='mustermann';
var2='may';
var3='str1';
var4='ort1';output;
var1='mustermann';
var2='may';
var3='str1';
var4='ort1';output;
run;

sotriere nach var1-4
proc sort data=test1;
by var1 var2 var3 var4;
run;

suche die gleichen Datensätze:

data test1;
set test1;
by var1 var2 var3 var4;

if (first.var1 and
first.var2 and
first.var3 and
first.var4)then do;

i = 0;
end;

i +1;

run;

was mach ich falsch?

Danke im Voraus viele Grüsse
Stella

FIRST-Variable

Hallo,

um den den gewünschten Effekt zu erzielen, genügt es auf first.var4 abzufragen, ohne jedoch das by-Statment zu ändern.

data test1;
set test1;
by var1 var2 var3 var4;

if first.var4 then do;
i = 0;
end;

i +1;

run;

Viel Spass noch
Lutz Ritter

Vielen Dank für die schnelle

Vielen Dank für die schnelle Antwort,

ich habe vielleicht dumme Frage aber:

heisst das also das
bei mehrere by variablen mit First.(x) ich die Andeutigkeit bestimme was gleich bis inkl. dieser First.(x) Variable sein muss? unabhängig ob weitere varialben nach (x)folgen.

z.B.: wie eben + var5:

proc sort data=test1;
by var1 var2 var3 var4 var5;
run;

data test1;
set test1;
by var1 var2 var3 var4 var5;
if first.var4 then do;
i=0;
end;
i+1;
run;

viele Grüsse
Stella

PS: ich habs ausprobiert und es geht, aber trozdem hätte ich gerne eine Bestätigung das es so ist und nicht das sowas nur Zufall ist

Hallo Stella, nein, das ist

Hallo Stella,

nein, das ist kein Zufall.

Schöne Grüße

Jan

Hallo zusammen, vielen

Hallo zusammen,

vielen Dank,

nun habe ich wieder was gelernt,

gibt es eine gute seite wo solche Feinheiten zumindest angedeutet sind?

vielen Dank nochmal

viele Grüsse
Stella

Andeutungen und sogar noch mehr

Hallo,
es gibt sogar mehr als nur Andeutungen!
In der gedruckten Dokumentation:
SAS Language Guide, Chapter 4 Rules of the SAS Language, BY-Group Processing, Page 134,135,136
oder die Online-Variante:
http://support.sas.com/onlinedoc/913/docMainpage.jsp
Dort folgende Punkte durchklicken
Base SAS
-> SAS Language Reference: Concepts
-> DATA Step Concepts
-> BY-Group Processing in the DATA Step
-> How the DATA Step Identifies BY Groups

Gruß
Hans Kneilmann, Schäfer Shop GmbH (SSI)