SAS中自定义格式可通过proc.format来实现,基本形式为
proc format;
invalue <$> 格式名 变量值或范围1=输入格式1 变量值或范围2=输入格式2……;
value <$> 格式名变量值或范围1=输入格式1 变量值或范围2=输入格式2……;
picture 模板名 <数值范围>;
值和格式可以不是相同类型的,可以把字符设置成数值格式,也可以把数值设置为字符格式;字符和数值一样,可以直接用“-”连接起来作为一个范围;可以用other表示其他以外的情况;指定范围时,可以用“<”或“>”等符号;可以用“_same_”保持原值。
例:
proc format;invalue fage low-<40=30 40-<50=50 50-<60=50 60-high=60;data age;input id age fage.; /*在变量age后加上自定义的输入格式fage,别忘了加点号*/cards;1 362 433 514 605 59;proc print;run;
结果如上图
例2
proc format;invalue $grade 1="Freshman" 2="Sophomore" 3="Junior" 4="Senior";value fscore low-<60="不及格" 60-80="及格" 80-high="优秀";data grade;input id grade: $grade20. score;/*在变量grade后加上自定义的输入格式grade*/format score fscore.;cards;1 1 602 4 593 3 804 2 79;proc print;run;
结果如上图所示