配列入門スポンサーリンクSAS2019.12.032020.08.17SASでも配列はあります。冗長な記事になっていますが、入門ってことで。構文数値変数の配列array 配列名 [要素数または*] 変数1 変数2 ・・・;文字変数の配列array 配列名 [要素数または*] $ 変数1 変数2 ・・・;要素数を囲んでいる大かっこ([])は中かっこ({})や小かっこ(())でも問題なく機能します。公式ドキュメントにも書いてありました。例1(小かっこ())data ArrayTest_1; array ar(*) a b c; ar(1) = 11; ar(2) = 12; ar(3) = 13; run;例2(中かっこ{})data ArrayTest_2; array ar{*} a b c; ar{1} = 21; ar{2} = 22; ar{3} = 23; run;例3(大かっこ[])data ArrayTest_3; array ar[*] a b c; ar[1] = 31; ar[2] = 32; ar[3] = 33; run;例4(かっこ種類を混ぜてみる)data ArrayTest_4; array ar[*] a b c; ar(1) = 41; ar{2} = 42; ar[3] = 43; run;こんな書き方でも問題なく動きます。例5(変数に直接入力)data ArrayTest_5; array ar[*] a b c; a = 51; b = 52; c = 53; run;よくある書き方。例6(要素番号の最初を0(ゼロ)にしても認識するか)data ArrayTest_6; array ar[*] a b c; ar[0] = 61; ar[1] = 62; ar[2] = 63; run;他の言語の経験があるとこれが意外なところ。配列の要素が1から始まるのは直感的に理解できる。このあたりSASは開発者に優しい設計になっていると思います。例7(文字変数の場合)data ArrayTest_7; array ar[*] $ a b c; ar[1] = "aaa"; ar[2] = "bbbb"; ar[3] = "ccccc"; run;例8(ループと混ぜて見る)data ArrayTest_8; array ar[*] a b c; do i = 1 to 3; ar[i] = i + 80; end; run;実際はこの例のようにループと混ぜて使うことがほとんどです。定番の書き方でもあるので、自分で書いてみて慣れておきたいです。
コメント