在SAS中缔刹,數(shù)組的一般形式為:
array 數(shù)組名[下標(biāo)] <$> <數(shù)組元素> <(元素初始值)>;
其中:
- array是定義數(shù)組的標(biāo)志愉粤;
- 數(shù)組名的命名規(guī)則與SAS數(shù)據(jù)集名一樣;
- 下標(biāo)指定數(shù)組中包含的元素個數(shù)泼掠,這里的元素一般就是變量怔软,可以使用“數(shù)組名[下標(biāo)]”的方式引用變量;
- 數(shù)組元素主要是列出數(shù)組中包含的變量择镇,可以是新變量挡逼,且若新建的變量是字符型,需要在前面加上$符號腻豌;
- 元素初始值指定新變量的值家坎,默認(rèn)為缺失值。
另外吝梅,數(shù)組定義的注意事項:
- 數(shù)組名不能與數(shù)據(jù)集中已有變量以及已有函數(shù)重名虱疏;
- 同一數(shù)組中的變量類型必須相同;
- 數(shù)組下標(biāo)的寫法可以用[],{},()中任意一種苏携;
- 數(shù)組中的下標(biāo)可以不寫做瞪,而用*代替,SAS會自動根據(jù)變量個數(shù)來判斷下標(biāo);
- 數(shù)組中的“數(shù)組元素”可以不寫装蓬,如array y[3]等同于array y[3] y1 y2 y3著拭;
- 元素初始值一定要用()括起來,各個值之間可以用逗號或空格隔開牍帚。
舉例說明:
在上述代碼的邏輯是這樣的:用data
語句儡遮、set
語句以及制定的條件語句把符合條件的數(shù)據(jù)找出來,存放到data
語句指定的數(shù)據(jù)集中暗赶,set
后面的6行就是指定的條件峦萎。其中,if missing(cha[1]) then output;
這句話是輸出缺失值的關(guān)鍵忆首,翻譯成白話就是:如果missing函數(shù)返回的值是1爱榔,那么就執(zhí)行output這一語句(否則就不執(zhí)行),output
語句的作用就是輸出結(jié)果糙及。輸出的結(jié)果如下:
這里有一點需要注意详幽,SAS是對每個變量分別執(zhí)行查找缺失值并輸出這一命令,所以若有的觀測有多個變量存在缺失值浸锨,就會重復(fù)顯示唇聘,可以使用上一節(jié)學(xué)到的去重方式進(jìn)行去重。
最后的i變量是do循環(huán)時產(chǎn)生的柱搜,如果想把這個變量刪除的話迟郎,在proc print;
之前加一句drop i;
就好。