/*缺失值统一修改为0*/
data numbers;
input var1 var2 var3; /*三个变量全部是数值型*/
datalines;
7 1 4
. 0 8
9 9 .
5 6 2
8 3 0
;
data nomiss(drop=i);
set numbers;
array testmiss(*) _numeric_; /*创建数组,数值的元素为本次数据集中所有数值型变量*/
do i = 1 to dim(testmiss); /*循环,利用DIM函数获得数组的元素个数*/
if testmiss(i)=. then testmiss(i)=0; /*对每次读一个观测,对观测里面的每一个变量进行判断*/
end;
run;
proc print;
run;
/*将0替换成缺失值*/
data deptnum;
input dept qtr1 qtr2 qtr3 qtr4;
datalines;
101 3 0 4 9
410 8 7 5 8
600 0 0 6 7
700 6 5 0 9
901 3 8 7 0
;
data nozero(drop=i);
set deptnum;
array testzero(*) qtr1-qtr3;
do i = 1 to dim(testzero);
if testzero(i)=0 then testzero(i)=.;
end;
run;
proc print;
run;
学习之处:
1.数组的使用,以及数组DIM函数,注意如何一次确定数组内的元素以及元素的属性,这里注意的是数组的元素必须一致,要么全部是数值
要么为字符
2.DO 循环在SET机制中的应用。