2017-03-07 3 views
0

Ich habe ein SAS-Dataset, das ich mit Zeichen und numerischen Variablen transponieren möchte. Nur Intervall und Gruppe sind Zeichenvariablen, der Rest sind numerische Variablen. Proc transpose konvertiert jedoch alle Variablen in Zeichenvariablen. Wie kann ich das folgende Programm so ändern, dass numerische Variablen als Zahlen- und Zeichenvariablen als Zeichen nach dem Transponiervorgang erhalten bleiben? Vielen Dank.Wie man numerische Variablen in proc transpose in SAS behält?

proc transpose data=sourceh.test out=sourceh.test2; 
var interval group cap rank volatility correlation significance; 
run; 
+1

Sie können nicht verschiedene Typen in derselben Spalte haben. – Reeza

+1

Wenn Sie ein langes Dataset in Wide transponieren, erstellen Sie für jede Zeile im ursprünglichen Dataset eine Spalte im neuen Dataset. Wie @Reeza darauf hinweist, bedeutet dies, dass Sie in jeder Spalte eine Mischung aus numerischen und Zeichenwerten erhalten, daher muss der Variablentyp ein Zeichen sein. Wenn Sie beispielsweise einige Beispieldaten posten und wie das Ergebnis aussehen soll, zeigt es möglicherweise etwas anderes als eine Standard-Transponierung. – Longfish

+0

Ich verstehe die Logik jetzt, danke @Reeza und Longfish. Ich habe meine Char-Variablen in numerische Variablen umgewandelt, und das hat mein Problem jetzt gelöst. Vielen Dank. –

Antwort

2

Sie können es in zwei Schritten tun.

proc transpose data=sourceh.test out=nums prefix=num; 
    var _numeric_; 
    run; 
proc transpose data=sourceh.test out=char prefix=char; 
    var _character_; 
    run; 

FYI: die Umwandlung von Zeichen in numerische, die Sie jetzt bekommen können eine nützliche Funktion sein, ich nenne es en masse vValue.