数値変数と文字変数の間の変換¶

数値変数と文字変数の間の変換は、データセットを処理するときに最も頻繁に発生 この記事では、この変換を正しく効率的に行う方法について説明します。

Numeric to Character¶

filingsという名前のインポートされたデータセットがあると仮定します。cikは、以下に示すように数値変数として格納されます:

cik file_type date
1000229 8-K 2011-09-30
100591 8-K 2006-05-11
100826 8-K 2009-06-30
93542 8-K 2007-01-25

cikは異なる桁であるため、数値cikを文字変数に変換するには、先行ゼロを埋め込むのが自然な手順です。 たとえば、cik(中央インデックスキー)自体はSECで使用される10桁の数値です。

SASでは、数値変数を先行ゼロの文字列に変換します(10桁の固定長を想定)。PUT()関数:

123
data filings(drop=cik); set filings; cik_char = put(cik, z10.); run;

ヒント

PUT()機能はPROC SQLでも動作します。

生成されたcik_char変数は形式と情報.であり、データセットは次のようになります:

cik_char file_type date
0001000229 8-K 2011-09-30
0000100591 8-K 2006-05-11
0000100826 8-K 2009-06-30
0000093542 8-K 2007-01-25

STATAでは、数値変数を先行ゼロ(6桁の固定長を想定)を使用して文字列に変換するには、string()関数を使用します。

1
gen char_var = string(num_var,"%06.0f")

SASでは、文字変数を数値変数に変換するには、INPUT()関数を使用します:

1
var_numeric = input(var_char, best12.);

STATAでは、この変換はreal()関数またはdestringコマンドのいずれかを介して行うことができます。

1
gen num_var = real(char_var);

real()関数は単一の変数で動作します。 destringコマンドは、すべての文字変数を一度に数値に変換できます。

1
destring, repalce

警告

文字変数に数字以外の文字が含まれている場合、変換されません。 このような場合は、encodeコマンドを使用することを選択できますが、実際にはカテゴリを生成しています。

より詳細な説明と例がありますstats.idre.ucla.edu

最終更新日:2020年5月22日

You might also like

コメントを残す

メールアドレスが公開されることはありません。