Arrays übergeben

Hallo...,
wenn ich im Datastep a ein Array z_1 anlege, wie kann ich im Datastep b darauf und auf diese Inhalte zugreifen?
Es ist leider notwendig mehrere Datasteps zu haben, da wir sehr viele Daten berechnen und erzeugen.

Folgendes haben wir schon probiert:
data b; set a; keep z_1;
data b; set a; keep z_1(5);
data b; set a; keep z_1{5};
data b; set a; keep z_1{5} z_11 z12 z13 z14 z15;

Das endete alles in folgender Fehlermeldung:
The function z_1 is unknown or cannot be accessed.

Folgendes funktioniert, aber generiert ein neues Problem: (Array ist weg und wir können mit do-Schleifen nicht mehr drauf zugreifen im datastep b)
data b; set a; keep z_11 z_12 z_13 z_14 z_15;

Wir wären sehr dankbar für irgendeinen Hinweis oder Idee!

Viele Grüße
Jana

Mit dem Schlüsselwort ARRAY klappt's

Hallo Jana,

die Meldung "Function z_1 is unknown" deutet schon auf die Fehlerursache hin: Du muß den Array erstmal mit dem Schlüsselwort ARRAY anlegen ... und zwar in jedem Data Step, in dem Du ihn verwenden willst. (Die Array-Definition wird also nicht in der Datei abgelegt, sondern nur die in dem Array anthaltenen Variablen.)

... z.B. wie in folgendem Beispielprogramm:


data a;
/* Anlegen des Array und des Array-Variablen */
array z_1 z11 - z15;
/* Jetzt was in die Array-Variablen reinschreiben */
do over z_1;
z_1 = 99;
end;
put _all_;
run;

data b;
set a;
array z_1 z11 - z15;
/* Jetzt den Array-Inhalt ausgeben */
do over z_1;
put z_1=;
end;
run;

... hoffe das hilft.

Gruß
Stephan F.

Danke, werden es morgen probieren!

Hallo Stephan,
vielen Dank für die Antwort. Bin mir nicht sicher, ob wir das nicht auch schon ausprobiert haben, aber werden das auf jeden Fall morgen Vormittag als Erstes testen.

Noch eine Frage: Was müsste man in das "put..." reinschreiben? Diese Variable soll in jedem der Durchläufe ja einen anderen zufälligen Wert erhalten!

Etwas, was uns ebenfalls nicht geglückt ist,ist Folgendes: Wir haben eine Varialbe i deklariert, wenn wir jedoch im selben(!) Datastep sagen: array z_1(i)
wird gemeldet, dass i nicht bekannt ist. Das sollte jedoch möglich sein laut allen References, oder?

Viele Grüße
Jana