1、定义变量的长度——length
建立SAS数据集时,定义sas数据集中每个变量的长度。可以将定义长度的句子写在data和set之间,要不然很可能导致在提醒中显示数据集已经定义了变量的长度。
举例:将education数据集中edu变量的长度定义为200个字符。
data education;
length edu $200;
set education;
run;
2、选择特定行数或者范围内的观测(文件的第N行_N_和rom_num):
1)取文件的第一行:
if _N_=1;
2)生成行号的变量rom_num,则取文件的第一行也可以用:rom_num=1;
data education;
rom_num+1;
set education;
run;
3、定义变量标签,使proc freq步中得到的结果能显示变量对应的标签。
data dataw.work_code;
set dataw.work;
/*加标签的方式1:用label语句*/
label code_group = 'code_group'
1 = '101'
2 = '102'
3 = '103'
4 = ‘104'
5 = '105'
6= 'others';
if code=11111 then code_group=1;
else if code=22222 then code_group=2;
else if code=33333 then code_group=3;
else if code=44444 then code_group=4;
else if code=55555 then code_group=5;
else code_group=6;
run;
proc sort;by code_group;run;
/*加标签的方式2:proc format,因为code_group 变量本身是数值型变量,所以用如下的写法*/
proc format;
value code_group 1 = '101'
2 = '102'
3 = '103'
4 = '104'
5 = '105'
6 = 'others';
run;
/*如果code_group是字符型变量,则采用如下的写法
proc format;
value $code_group '1' = '101'
'2' = '102'
'3' = '103'
'4' = '104'
'5' = '105'
'6' = 'others';
run;*/
proc freq data=dataw.work_code;
tables code_group;
format code_group code_group.;
run;
4、对数据集进行批量改值
1)对数据集中的字符型字段进行改值
data collect;
set collect;
array char _char_;
do over char;
if strip(char)="-8"|strip(char)="-7"|strip(char)="-2"|strip(char)="-1" then char ="";
end;
run;
2)对数据集中的数值型字段进行改值
data collect;
set collect;
array num _numeric_;
do over num;
if num in ("-8" "-7" "-2" "-1") then num =.;
end;
run;
至此,我们对数据集中所有文本型、数值型的-8、-7、-2、-1分别填充为了空白和缺失。