2016-07-28 116 views
3

我有一個SAS數據集,其中包含一些列。因此,閱讀67,349美元而不是閱讀67,349美元。我如何從所有列中刪除所有$,並讓SAS將它們識別爲數字?從SAS列中刪除美元符號

美元符號只有幾列,所以我可以每次做一列。我正在使用SAS的免費大學版。

+0

您已經擁有SAS數據集?或者你是從源文件創建SAS數據集? – Tom

+0

我在該數據集中有一個現有的數據集,其中有幾列包含美元符號。 – user18101

回答

4

如果你只是想刪除$,仍然有一個字符變量,然後使用compress()函數。

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

如果要將字符串轉換爲新的數字變量,請參閱此現有問題。信息將自動忽略字符串中的$,字符。 Converting character variabls to numeric in SAS

2

我會從字符串變量中刪除$和,值。然後使用輸入功能轉換爲數字。

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()用空格替換$和。 COMPRESS()刪除所有空格。 INPUT()將字符串轉換爲數字。

當然你可以把所有這一切放在一個電話裏,但是我在這裏把它分解出來,使它更容易遵循。

+0

我在哪裏使用我的專欄名稱?在這種情況下是「HOME_VAL」。我要更換「$ 62,123」嗎? – user18101

+0

'incol'和'outcol'只是佔位符。用你想要調用新列的'column'和'outcol'替換'incol'。如果需要,您可以隨時刪除舊列並將新列重新命名爲原始名稱。 – DomPazz

+0

這是將行添加到數據集 – user18101

3

爲什麼不只是使用dollar.信息?

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

是的,這應該是被接受的答案。 –