Sas: put と input の違い
SAS のPUT関数とINPUT関数を使用して、変数を別のデータ型に変換できます。
2 つの関数の違いは次のとおりです。
PUT関数は、文字変数または数値変数を入力として受け取り、常に文字変数を出力します。
INPUT関数は文字変数のみを入力として受け取り、文字変数または数値変数を出力できます。
次の例は、実際にPUT関数とINPUT関数を使用する 2 つの一般的な方法を示しています。
例 1: PUT を使用して数値変数を文字変数に変換する
SAS に、連続 10 日間の店舗の総売上高を示す次のデータセットがあるとします。
/*create dataset*/ data original_data; input day sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
プロシージャの内容を使用して、データセット内の各変数のデータ型を表示できます。
/*display data type for each variable*/
proc contents data =original_data;
その日と売上はどちらも数値変数であることがわかります。
PUT関数を使用して、 day変数を数値から文字に変換できます。
/*create new dataset where 'day' is character*/
data new_data;
set original_data;
char_day = put (day, 8.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
再びproc の内容を使用して、新しいデータセット内の各変数のデータ型を確認できます。
/*display data type for each variable in new dataset*/
proc contents data =new_data;
PUT関数を使用して、 day変数を数値からchar_dayという新しい文字変数に変換することに成功しました。
例 2: INPUT を使用して文字変数を数値変数に変換する
SAS に、連続 10 日間の店舗の総売上高を示す次のデータセットがあるとします。
/*create dataset*/ data original_data; input day $sales; datalines ; 1 7 2 12 3 15 4 14 5 13 6 11 7 10 8 16 9 18 10 24 ; run ; /*view dataset*/ proc print data = original_data;
プロシージャの内容を使用して、データセット内の各変数のデータ型を表示できます。
/*display data type for each variable*/
proc contents data =original_data;
dayは文字変数、 sales は数値変数であることがわかります。
INPUT関数を使用して、 day変数を文字から数値に変換できます。
/*create new dataset where 'day' is numeric*/
data new_data;
set original_data;
numeric_day = input (day, comma9.);
drop day;
run ;
/*view new dataset*/
proc print data =new_data;
再びproc の内容を使用して、新しいデータセット内の各変数のデータ型を確認できます。
/*display data type for each variable in new dataset*/
proc contents data = new_data;
INPUT関数を使用して、 day変数を文字変数からnumeric_dayという新しい数値変数に変換することに成功しました。
追加リソース
次のチュートリアルでは、SAS で他の一般的なタスクを実行する方法について説明します。
SAS: 文字変数を数値に変換する方法
SAS: 数値変数を文字に変換する方法
SAS: 文字変数を日付に変換する方法
SAS: 数値変数を日付に変換する方法