2

こんにちは、データセットを作成していますが、マージしているデータの形式が異なります。

Excel シートから数値 8 をインポートし、マージする他の 2 つのデータセットは文字 20 であるため、数値 8 を文字 20 に変更したいと考えています。

変数 acctnum を char 20 に変更するにはどうすればよいですか? (また、新しい変数が作成されると思われるので、これをその名前のままにしたいと思います)

data WORK.T82APR;       
set WORK.T82APR;
rename F1 = acctnum f2 = tariff;
run;

proc contents data=T82APR;
run;
4

2 に答える 2

3

このスレッドはすでに死んでいますが、14 桁の変換が E 表記になった理由を答えたいと思いました。

通常、特に指定がない限り、SAS の数値形式は BEST12 形式を使用します。そのため、数値が 12 文字 (カンマとピリオドを含む) を超える場合、BEST12 は値をフォーマットする最適な方法として E 表記法を選択します。

この場合、入力関数はフォーマットされた値 put(acctnum, BEST12.) を受け取ります。それを回避する方法は2つあったでしょう。

どちらかを使用

input(put(acctnum, 14.), $20.);

または、format ステートメントを使用して変数の形式を変更します (データ ステップで直接、または proc データセットなどを使用して)。これには、SAS でテーブルを開くと、科学的な形式ではなく 14 桁が表示されるという追加の利点があります。価値。

proc datasets library=work nolist;
    modify dsname;
        format acctnum 14.;
run;

ヴィンセント

于 2013-07-03T15:51:05.500 に答える
2

これを試して:

data WORK.T82APR ;       
set WORK.T82APR;
acctnum = put(F1, $20.);
rename f2 = tariff;
run;

わかりました、私はあなた自身の名前変更ステートメントに注意を払っていなかったので、今それを反映するように答えを調整しました.

于 2011-05-13T13:05:01.217 に答える