2016-07-28 16 views
3

一部の列で$を持つSASデータセットがあります。だから、67,349を読むのではなく、$ 67,349を読みます。すべての列からすべての$を削除し、SASにそれらを数値として認識させるにはどうすればよいですか?SASのドル記号を削除する列

ドル記号が付いた列はほんの少ししかないので、一度に1つずつ各列を実行できます。 SASの無料大学版を使用しています。

+0

すでにSASデータセットがありますか?または、ソースファイルからSASデータセットを作成していますか? – Tom

+0

私はそのデータセットに既存のデータセットを持っていますが、2つの列にドル記号が含まれています。 – user18101

答えて

4

$を削除して文字変数を残したい場合は、compress()関数を使用します。

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

文字列を新しい数値変数に変換する場合は、この既存の質問を参照してください。 COMMA. informatは、文字列内の$,文字を自動的に無視します。 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()は、文字列を数値に変換します。

もちろん、あなたはすべてのコールを1コールに入れることができますが、私はここを壊してフォローしやすくします。

+0

私のカラムの名前はどこで使用しますか?この場合は「HOME_VAL」となります。私は "$ 62,123"を交換するのですか? – user18101

+0

'incol'と' outcol'はちょうど所持者です。 'incol'をカラムに置き換え、' outcol'を新しいカラムを呼び出すカラムに置き換えます。必要に応じて古い列を削除し、新しい列の名前を元の名前に戻すことができます。 – DomPazz

+0

これはデータセット – user18101

3

なぜdollar.インフォーマットを使用しないのですか?

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

に行を追加していましたが、これは受け入れられる回答である必要があります。 –