今回は、ATTRIBによる形式変換とPUTによる形式変換の違いを解説します。
結論:ATTRIBは入力項目が数値型、文字列型どちらにも対応できるが、
PUTは入力項目が数値型の時しか使えない。
(参考:【SAS】ATTRIBの使い方を解説 | ビジネスイッチ (how-to-business.com))
(参考:【SAS】PUTはSAS日付値をフォーマットを変換して表示する【DATE】【YYMMDD】【DATETIME】【TIME】【TOD】 | ビジネスイッチ (how-to-business.com))
/* attrib_1 */
data data1;
id1="22229"; id2="22229"; id3="22229";
output;
id1="22229"; id2="22229"; id3="22229";
output;
id1="22229"; id2="22229"; id3="22229";
output;
run;
data data2; set data1;
attrib id4 format=date9. ;
id4 = id1;
run;
![](https://how-to-business.com/wp-content/uploads/2023/05/attrib_1_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/05/attrib_1_2.png)
- attrib-formatは”22229″⇒10NOV2020に形式変換する。
/* attrib_2 */
data data1;
id1=22229; id2=22229; id3=22229;
output;
id1=22229; id2=22229; id3=22229;
output;
id1=22229; id2=22229; id3=22229;
output;
run;
data data2; set data1;
attrib id4 format=date9. ;
id4 = id1;
run;
![](https://how-to-business.com/wp-content/uploads/2023/05/attrib_2_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/05/attrib_2_2.png)
- attrib-formatは22229⇒10NOV2020に形式変換する。
/* put_1 */
data data1;
id1="22229"; id2="22229"; id3="22229";
output;
id1="22229"; id2="22229"; id3="22229";
output;
id1="22229"; id2="22229"; id3="22229";
output;
run;
data data2; set data1;
id4 = put(id1, date9.);
run;
![](https://how-to-business.com/wp-content/uploads/2023/05/put_1_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/05/put_1_2.png)
- putは”22229″を型変換できない。
/* put_2 */
data data1;
id1=22229; id2=22229; id3=22229;
output;
id1=22229; id2=22229; id3=22229;
output;
id1=22229; id2=22229; id3=22229;
output;
run;
data data2; set data1;
id4 = put(id1, date9.);
run;
![](https://how-to-business.com/wp-content/uploads/2023/05/put_2_1.png)
![](https://how-to-business.com/wp-content/uploads/2023/05/put_2_2.png)
- putは22229⇒10NOV2020に形式変換する。