2016-06-28 28 views
0

コードは非常に簡単です:SAS Put文 - なぜcharを数値に変換するのに使用できますか?

data test (keep = state state_num); 
set raw1314.accident2013_prf; 
    state_num= put(state,z2.); 
run; 

変数「状態」状態名が含まれており、このプログラムの出力は次のようになります。

Obs  STATE  state _num 
    1  Alabama  01 

しかし、「置く」機能は、数値に変換するために使用されていません値を文字値に変換しますか?なぜ「アラバマ」を「01」にマッピングするのでしょうか?

ありがとうございます。

+0

第二のコードは、「テスト」の結果である第一のプログラムの出力です。 – vivi11130704

+0

州にはフォーマットが適用されており、どのようなタイプですか? – Reeza

答えて

2

変数STATEは数値(1)で、書式が適用されているか、書式が適用された文字(01)でなければなりません。それがアラバマの文字価値だったなら、これは起こらないでしょう。

data _null_; 
x=put('Alabama', z2.); 
put x; 
run; 

結果:

55   
56   data _null_; 
57   x=put('Alabama', z2.); 
         ___ 
         484 
NOTE 484-185: Format $Z was not found or could not be loaded. 

58   put x; 
59   run; 
Al 
+0

ありがとうございます。そうです、「州」のタイプは「Num」です。それでは、どのように数値を文字として表示できますか? – vivi11130704

+0

どのような形式なのかは、新しい変数を作成せずにレポートやデータセットに変数を表示する方法を変更することです。 – Reeza

+0

"proc contents"を確認しました。タイプ= "Num"。フォーマット= "STATE13F" Informat = "6"。ラベル= "状態番号"。番号を州名に変更するには、それらをproc形式のプロシージャにする必要があることを理解します。しかし、その後、どのようにタイプが変わった後もまだNUMですか? – vivi11130704

関連する問題