2016-07-28 21 views
3

Ich habe ein SAS-Dataset, das $ mit einigen der Spalten enthält. Anstatt also 67.349 zu lesen, sind 67.349 $ zu lesen. Wie entferne ich alle $ 's aus allen Spalten und lasse SAS sie als Zahlen erkennen?Entfernen Sie Dollarzeichen von SAS-Spalte

Es gibt nur ein paar Spalten mit den Dollarzeichen, so dass ich jede Spalte einzeln machen kann. Ich benutze die kostenlose Universitätsausgabe von SAS.

+0

Sie haben bereits einen SAS-Datensatz? Oder erstellen Sie ein SAS-Dataset aus einer Quelldatei? – Tom

+0

Ich habe einen vorhandenen Datensatz in diesem Datensatz, einige der Spalten enthalten Dollarzeichen. – user18101

Antwort

4

Wenn Sie nur das $ entfernen möchten und immer noch eine Zeichenvariable haben, dann benutzen Sie die compress() Funktion.

data want; 
    set have; 
    myvar = compress(myvar,'$'); 
run; 

Wenn Sie die Zeichenfolge in eine neue numerische Variable konvertieren möchten, dann sehen Sie sich diese Frage an. Die COMMA. Information ignoriert automatisch die $ und , Zeichen in der Zeichenfolge. Converting character variabls to numeric in SAS

2

Ich würde die Werte $ und, aus der String-Variable entfernen. Dann verwenden Sie die Eingabefunktion, um in eine Zahl zu konvertieren.

data test; 
format incol $12.; 

incol = "$62,123"; 
incol = compress(translate(incol,"","$,")); 
outcol = input(incol,best.); 
output; 

incol = "62,123.3"; 
incol = compress(translate(incol,"","$,")); 
outcol = input(incol,best.); 
output; 
run; 

TRANSLATE() ersetzt $ und, mit Leerzeichen. COMPRESS() löscht alle Leerzeichen. INPUT() wandelt eine Zeichenfolge in eine Zahl um.

Natürlich können Sie alles in 1 Anruf setzen, aber ich habe es hier ausgebrochen, um es einfacher zu folgen.

+0

Wo verwende ich den Namen meiner Spalte? in diesem Fall "HOME_VAL". Ersetze ich die "$ 62,123"? – user18101

+0

'incol' und' outcol' sind nur Platzhalter. Ersetzen Sie "incol" mit Ihrer Spalte und "outcol" mit dem, was Sie die neue Spalte nennen möchten. Sie können die alte Spalte immer löschen und die neue ggf. wieder in den ursprünglichen Namen umbenennen. – DomPazz

+0

Dies war das Hinzufügen von Zeilen zum Datensatz – user18101

3

Warum nicht einfach die dollar. informat verwenden?

 
data want ; 
    incol ="$62,123" ; 
    outcol = input(incol,dollar10.) ; 
run ; 
+0

Yup, dies sollte die akzeptierte Antwort sein. –