neue Variable "berechnen"

hi, ich schon wieder ;)

Ich mach folgendes im Rahmen eines Datasteps (siehe unten)
Die Variable KRE_ALTKRE ist nummerisch, drei Stellen.
Die neue Variable KRE_ALTKREGR wird immer nur zweistellig.
Wenn die neue Variable nummerisch ist und daher nur 2 Stellen braucht, klappt alles perfekt.
Was fehlt oder was mach ich falsch?
Ich hab auch schon den ganzen Datensatz gelöscht, damit ich SAS ja nicht irgendwas "merkt", aber es kommt immer wieder falsch.

DATA RVZA;
INFILE a TRUNCOVER;
/*....*/
IF 0<=KRE_ALTKRE<5 THEN KRE_ALTKREGR='i1';
IF 5<=KRE_ALTKRE<10 THEN KRE_ALTKREGR='i2';
IF 10<=KRE_ALTKRE<15 THEN KRE_ALTKREGR='i3';
IF 15<=KRE_ALTKRE<20 THEN KRE_ALTKREGR='i4';
IF 20<=KRE_ALTKRE<25 THEN KRE_ALTKREGR='i5';
IF 25<=KRE_ALTKRE<30 THEN KRE_ALTKREGR='i6';
IF 30<=KRE_ALTKRE<35 THEN KRE_ALTKREGR='i7';
IF 35<=KRE_ALTKRE<40 THEN KRE_ALTKREGR='i8';
IF 40<=KRE_ALTKRE<45 THEN KRE_ALTKREGR='i9';
IF 45<=KRE_ALTKRE<50 THEN KRE_ALTKREGR='i10';
IF 50<=KRE_ALTKRE<55 THEN KRE_ALTKREGR='i11';
IF 55<=KRE_ALTKRE<60 THEN KRE_ALTKREGR='i12';
IF 60<=KRE_ALTKRE<65 THEN KRE_ALTKREGR='i13';
IF 65<=KRE_ALTKRE<70 THEN KRE_ALTKREGR='i14';
IF 70<=KRE_ALTKRE<75 THEN KRE_ALTKREGR='i15';
IF 75<=KRE_ALTKRE<80 THEN KRE_ALTKREGR='i16';
IF 80<=KRE_ALTKRE<85 THEN KRE_ALTKREGR='i17';
IF 85<=KRE_ALTKRE THEN KRE_ALTKREGR='i18';
RUN;

Hallo, wenn ich das richtig

Hallo,

wenn ich das richtig verstehe, hängt das nur mit der Länge zusammen.
Die Lösung ist ganz einfach.
Vor IF ... einfach eingeben:

laength kre_altkregr $3.;
format kre_altkregr $3.;

Damit geht SAS von einer Variablen Länge von 3 Zeichen aus und gibt dem ganzen das entsprechende Format.
Andere Lösung wäre, zuerst die längste Variablen-Inhalte zu vergeben, dann nimmt er das automatisch, also beim Beispiel:

IF 85<=KRE_ALTKRE THEN KRE_ALTKREGR='i18';

Macht er Automatisch Format und Länge auf 3.

Viele Grüße und schöne Pfingsten

Thomas

Danke

genau so wars, hat sas schon wieder mal schneller und mehr gedacht als ich ;)

Freut mich, dass es geholfen

Freut mich, dass es geholfen hat...

Viele Grüße und noch schöne Pfingsten

Thomas