2016-09-23 1 views
1

Ich muss merge zwei Datensatz in SAS wo in der Schlüssel-Variable ist eine Zahl, wo die Lenghh ist 10 (zum Beispiel). Wenn die Zahl kürzer als 10 ist, habe ich eine variable Anzahl von Nullen. Zum Beispiel 00000056471. Während in dem anderen Datensatz die Nummer einfach 56471 ist. Ich möchte eine andere Variable in der zweiten Datenmenge erstellen, die die Variablennummer von Null hinzufügen und diese als Schlüsselvariable für die merge verwenden.Wie erstellt man eine Nummer mit einer variablen Anzahl von Nullen als erste in SAS

Wie kann ich reparieren?

Vielen Dank im Voraus

Antwort

0

Es gibt drei Ansätze, die Sie nutzen könnten:

data have; 
input ID $10. ; 
cards; 
143134 
12 
14356677 
12f 
oh dear 
;run; 

data want; 
    set have; 
    /* if numeric then convert to number and back using z10 format */ 
    newID=put(input(ID,8.),$z10.); 
    /* if alphanumeric, right align then replace spaces (will replace ALL spaces) */ 
    newID2=translate(right(ID),'0',' '); 
    /* probably the best method */ 
    newID3=repeat('0',10-length(ID)-1)||ID; 
run; 

Dokumentation auf Zw.d Format here verfügbar.

+0

Danke. Das Problem ist, dass diese Variablen Zeichen sind und dass sie Zeichen bleiben müssen, da die Variable im anderen Datensatz ein Zeichen ist (es gibt auch alphanumerische Werte). – TheZone

+0

Antwort aktualisiert! –

Verwandte Themen