Tabellen voneinander abziehen

Hallo zusammen,

ich habe im Enterprise Guide (4.1) zwei strukturidentische Tabellen, von denen die eine x observations, die andere (x+y) observations enthält.
Wie kann ich (entweder mit Abfrage/Filter..., proc SQL oder data step) eine Tabelle mit den y observations bekommen?

Ich hoffe, mir kann jemand hier helfen.

Schönen Gruß

Olaf Musch

Datastep

Hallo Olaf,

folgendermaßen mit dem Datastep:


data x;
do i = 1 to 5;
output;
end;
run;

data x_und_y;
do i = 1 to 10;
output;
end;
run;

data y;
merge x(in=x) x_und_y(in=x_und_y);
by i;
if x_und_y and not x;
run;

Gruß
Wolfgang

PS: Bedingt natürlich, dass jeweils nach i sortiert ist, was in diesem Beispiel der Fall ist.

Rückfrage

Hallo,

erstmal danke für die schnelle Antwort.
Was ist denn, wenn ich z.B. die Spalten a,b,c,d habe, und beide Objekte auch danach sortiert sind, aber ich nicht gewährleisten kann, dass observations aus y nur am Anfang bzw. nur am Ende stehen?

Im Beispiel also, wenn in x nicht 1 bis 5 stünden, sondern 1, 3, 5, 7 und 9.

Würde der data step dann genauso funktionieren?

Schönen Gruß

Olaf Musch

Jetzt aber

Hallo nochmal,

jetzt habe ich den Datastep gefunden:

data work.y;
merge Basis_1(in=Basis_1) Basis_2(in=Basis_2);
by _ALL_;
if Basis_1 and not Basis_2;
run;

Und so funktioniert's auch.

Danke für den Hinweis.

Schönen Gruß aus Braunschweig

Olaf Musch