data步;
data a;/创建临时数据集/
data a b;/创建两个临时数据集/
data resdat.a;/创建永久数据集/
data _null_;/特殊名 不创建数据集 用于输出数据/
排序proc sort;
proc sort data=a out=b ;
by descending var;
/默认为升序排列,descending为按降序排列/
run;
descending-------------降序
sortseq可以选择按ASCII或者EBCDIC排序
sortseq=ASCII;
sortseq=EBCDIC;
sort排序会默认大写字母和小写字母分开排序,按语义排序可使用sortseq=linguistic(strength=primary) 可以忽略大小写;
例如:
原数据
将state按照字母顺序排序,且忽略大小写
proc sort data=addresses out=sortone sortseq=linguistic(strength=primary);
by state;
proc print;
run;
排序后如下
观察street变量,street为字符型变量,按ASCII值排序时”10“排在”2“前面,思考:此时想要让变量中的数字按数值顺序排列,该怎么办呢?
sortseq=linguistic(numeric_collation = on)则是将变量中的数字按照数值排序
proc sort data=sortone out=sorttwo sortseq=linguistic(numeric_collation = on);
by street;
proc print;
run;
排序后如下
打印显示 proc print;
proc print data=a;
var _numeric_;/显示数值型变量/
var _character_;/显示字符型变量/
run;
proc format;
自定义输入输出格式;
proc format;
/自定义输入格式/
invalue 变量名 变量值1=输入格式1 变量值2=输入格式2;
/自定义输出格式/
value 变量名 变量值1=输出格式1 变量值2=输出格式2;
run;