如何在SAS中对含缺失值的两个变量执行求和运算?
解决SAS中变量相加时缺失值导致结果缺失的问题
SAS中数值缺失值(.)参与算术运算时,结果会自动变为缺失值,这就是你直接相加后出现缺失的原因。以下两种方法可以解决这个问题:
方法一:使用SUM函数(推荐)
SUM函数会自动忽略缺失值,仅对非缺失的变量值求和,代码修改如下:
DATA FINAL.NEW_DATA; SET FINAL.FULL_DATA; FV_QTY = SUM(NUT_VEG_QTY, NUT_FRUITS_QTY); * 忽略缺失值,仅计算非缺失值的和; RUN;
- 当其中一个变量缺失、另一个有值时,返回有值变量的数值;
- 当两个变量都有值时,返回两者的和;
- 当两个变量都缺失时,返回缺失值(
.)。
方法二:用COALESCE函数将缺失值替换为0后相加
如果需要把缺失值直接当作0处理,可以用COALESCE函数将缺失值替换为0,再执行加法:
DATA FINAL.NEW_DATA; SET FINAL.FULL_DATA; FV_QTY = COALESCE(NUT_VEG_QTY, 0) + COALESCE(NUT_FRUITS_QTY, 0); * 缺失值替换为0后相加; RUN;
- 这种方式下,即使两个变量都缺失,结果会返回0,这是和SUM函数的核心区别,可根据你的业务需求选择。
内容的提问来源于stack exchange,提问作者sabc04
相关产品推荐
相关产品推荐

