SAS缺少价值替换

时间:2014-03-13 20:55:55

标签: sas missing-data

假设我在数据集中有变量X1,X2,X3和Group。组具有不同的值,例如1-10,并且X1,X2,X3是连续变量。 X1,X2和X3在整个数据集中散布了缺失值,彼此独立。换句话说,X1可能会丢失,但不会丢失X2和X3,而另一个观察可能只缺少X3。

对于每个缺失值,我想用该观察组#中的该变量的中值替换它。

有没有好办法呢?

提前致谢

1 个答案:

答案 0 :(得分:1)

这里的基本方法是多步骤:

  1. 按组计算中位数(使用PROC MEANS或类似的分析程序)
  2. 按组合并到主数据集,使用新变量(例如“x3_median”等)
  3. 在该datastep或后续版本中,x3 = coalesce(x3,x3_median);和x1和x2类似。
  4. 您可以在单个datastep或单个PROC SQL连接中执行2和3。理论上你可以在一个SQL步骤中计算中值并附加它,但这可能会更慢并且更难维护(因为中位数是一个相对困难的SQL计算,不能直接用函数完成 - MEDIAN函数是不是SQL中的聚合函数。)