SAS学习笔记13 SAS数据清洗和加工(续)

查找缺失值

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

cha[*]和num[*]是建立数组cha和num,但不指定数组中的元素数

自动变量_character_表示数据集中的所有字符型变量

自动变量_numeric_表示数据集中的所有数值型变量

_all_表示数据集中的所有变量

if和where的区别

where运行的速度要快一些,因为它是在数据读入之前就执行选择条件,而if是在数据读入之后才执行。但只有在数据量很大的时候才能感觉出来,正常几百几千个数据几乎感觉不到

只能用if的场合

使用自动变量时,只能用if,不能用where

如果指定的条件变量是新产生的变量,只能用if,不能用where

只能用where的场合

当使用某些特殊运算符时,只能用where,不能用if

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

当调用某一proc过程时,如果要选择部分观测执行该过程,只能用where,不能用if

查找异常值

 SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

缺失值的填补

之前笔记1介绍过缺失值的单一插补法,这里介绍下缺失值的多重填补(multiple imputation)

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

可以看到,sas默认产生5个填补完整的数据集,每个数据集的填补值都不同。我们可以取这5次填补的平均值作为最终的填补值

缺失数据的更新

SAS学习笔记13 SAS数据清洗和加工(续)

SAS学习笔记13 SAS数据清洗和加工(续)

上一篇:SAS的初级入门(四)


下一篇:SAS学习笔记6 算数语句(sum、mean、min、max函数)