如何在SAS中使用前一个非缺失值替换缺失值?
在SAS中用前一个非缺失值填充name变量的缺失值
要实现用前一个非缺失值替换name变量的缺失值,核心是利用SAS的RETAIN语句保留上一行的有效name值,具体代码如下:
data test_filled; set test; retain prev_name; /* 保留变量值,不随DATA步循环重置 */ if not missing(name) then do; prev_name = name; /* 当前name非缺失时,更新保留的变量 */ end; else do; name = prev_name; /* 当前name缺失时,用保留的前一个有效值替换 */ end; run;
代码说明
RETAIN prev_name;:该语句让prev_name在DATA步的每次循环中保留上一次的赋值结果,而非默认重置为缺失。- 条件判断:当当前行的
name不为缺失时,将prev_name更新为当前的name;当name缺失时,直接用prev_name(即前一个非缺失的name值)覆盖当前的缺失值。
运行这段代码后,你会得到填充好的数据集test_filled,其中所有name的缺失值都会被前一个非缺失值替换。
内容的提问来源于stack exchange,提问作者Dheeraj singh
相关产品推荐
相关产品推荐

