Sas中如何用零替换缺失值
通常,您可能希望用零替换 SAS 数据集中的缺失值。
幸运的是,使用简单的if then语句可以很容易地做到这一点。
以下示例展示了如何在实践中用零替换缺失值。
示例1:替换所有列中的缺失值
假设我们在 SAS 中有以下数据集,包含三列,每列都有缺失值:
/*create dataset*/ data my_data; input xyz; datalines ; 1. 76 2 3 . 2 3 85 4 5 88 2 2 . 1 2 69 5. 94 4 1 . . . 88 4 3 92 ; run ; /*view dataset*/ proc print data =my_data;
我们可以使用以下代码将数据集中每一列中的缺失值替换为零:
/*create new dataset with missing values replaced by zero*/
data my_data_new;
set my_data;
array variablesOfInterest _numeric_ ;
do over variablesOfInterest;
if variablesOfInterest=. then variablesOfInterest= 0 ;
end ;
run ;
/*view new dataset*/
proc print data =my_data_new;
请注意,每列中的缺失值已被替换为零。
注意: _numeric_参数告诉 SAS 将数据集中每个数字列中的缺失值替换为零。
示例2:替换特定列中的缺失值
我们再次假设 SAS 中有以下数据集,其中包含三列,每列都有缺失值:
/*create dataset*/ data my_data; input xyz; datalines ; 1. 76 2 3 . 2 3 85 4 5 88 2 2 . 1 2 69 5. 94 4 1 . . . 88 4 3 92 ; run ; /*view dataset*/ proc print data =my_data;
我们可以使用以下代码仅将数据集“y”列中的缺失值替换为零:
/*create new dataset with missing values in "y" column replaced by zero*/
data my_data_new;
set my_data;
array variablesOfInterest y;
do over variablesOfInterest;
if variablesOfInterest=. then variablesOfInterest= 0 ;
end ;
run ;
/*view new dataset*/
proc print data =my_data_new;
请注意,只有“y”列中的缺失值已被替换为零。
其他资源
以下教程解释了如何在 SAS 中执行其他常见任务: