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 中执行其他常见任务:

如何标准化 SAS 中的数据
SAS中如何删除重复项
如何在SAS中使用过程摘要
如何在 SAS 中选择不为零的观测值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注