美文网首页
SAS用数组的方式查找缺失值

SAS用数组的方式查找缺失值

作者: 3between7 | 来源:发表于2020-04-24 15:00 被阅读0次

    在SAS中,数组的一般形式为:

    array 数组名[下标]  <$> <数组元素> <(元素初始值)>;
    

    其中:

    • array是定义数组的标志;
    • 数组名的命名规则与SAS数据集名一样;
    • 下标指定数组中包含的元素个数,这里的元素一般就是变量,可以使用“数组名[下标]”的方式引用变量;
    • 数组元素主要是列出数组中包含的变量,可以是新变量,且若新建的变量是字符型,需要在前面加上$符号;
    • 元素初始值指定新变量的值,默认为缺失值。

    另外,数组定义的注意事项:

    • 数组名不能与数据集中已有变量以及已有函数重名;
    • 同一数组中的变量类型必须相同;
    • 数组下标的写法可以用[],{},()中任意一种;
    • 数组中的下标可以不写,而用*代替,SAS会自动根据变量个数来判断下标;
    • 数组中的“数组元素”可以不写,如array y[3]等同于array y[3] y1 y2 y3;
    • 元素初始值一定要用()括起来,各个值之间可以用逗号或空格隔开。

    举例说明:


    WX20200422-163637@2x.png

    在上述代码的逻辑是这样的:用data语句、set语句以及制定的条件语句把符合条件的数据找出来,存放到data语句指定的数据集中,set后面的6行就是指定的条件。其中,if missing(cha[1]) then output;这句话是输出缺失值的关键,翻译成白话就是:如果missing函数返回的值是1,那么就执行output这一语句(否则就不执行)output语句的作用就是输出结果。输出的结果如下:

    WX20200424-145434@2x.png

    这里有一点需要注意,SAS是对每个变量分别执行查找缺失值并输出这一命令,所以若有的观测有多个变量存在缺失值,就会重复显示,可以使用上一节学到的去重方式进行去重。

    最后的i变量是do循环时产生的,如果想把这个变量删除的话,在proc print;之前加一句drop i;就好。

    相关文章

      网友评论

          本文标题:SAS用数组的方式查找缺失值

          本文链接:https://www.haomeiwen.com/subject/brxwihtx.html