Schleife: Warum läuft sie nicht?
Verfasst von SAS-Fidi am 1 Februar, 2010 - 12:49
Hallo,
ich habe eine von Transpose erzeugte Datei. Die Variablen heißen, wie üblich, Col1 bis col137. Sie sollen aber logmar0 bis logmar136 heißen. Ganz einfach, dachte ich, aber irgendwie ist der Wurm drin:
data versuch;
set gedreht;
if _name_ in ('mean','std');
array alt(137)col1-col137;
array neu(137)logmar0-logmar136;
do i=1 to 137;
rename alt(i)=neu(i);
end;
run;
Angegeben wird ein Syntax error im Rename statement.
Steh gerade völlig auf dem Schlauch und wäre für Hilfe echt dankbar!
VG SAS-Fidi
»
- Anmelden oder Registrieren um Kommentare zu schreiben

Es geht viel einfacher
Hallo Frau Müller,
das Rename-Statement wird nicht zur Laufzeit ausgewertet, sondern in der Kompilierungsphase. Daher muss der Name bereits vor dem Durchlauf bekannt sein. Aber es geht viel einfacher, da man durchnummerierte Variablen in einem Rutsch umbenennen kann.
set gedreht;
rename col1-col137 = logmar0-logmar136;
run;
Beim Transponieren kann man auch die Option Prefix setzen, z.B. Prefix=logmar. Dann werden die Variablen nicht COL1-COLn benannt sondern logmar1-logmarn. Allerdings startet SAS weiterhin mit der 1 und nicht mit der 0.
Schöne Grüße
Jan
Danke, das hilft mir schon
Danke, das hilft mir schon viel weiter!
VG SAS-Fidi
Hallo SAS-FIDI; sie können
Hallo SAS-FIDI;
sie können bspw. über ein Macro das rename durchführen.
data b;
set a;
%macro renam;
%do i=1 %to 137;
rename col&i=lognom%eval(&i-1);
%end;
%mend;
%renam;
run;
Ihre Syntax kann nicht funktionieren, fällt mir aber schwer den fehler in Worte zu fassen.