SASでも配列はあります。
冗長な記事になっていますが、入門ってことで。
構文
数値変数の配列
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;

実際はこの例のようにループと混ぜて使うことがほとんどです。
定番の書き方でもあるので、自分で書いてみて慣れておきたいです。
コメント