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;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_01.png)
例2(中かっこ{})
data ArrayTest_2; array ar{*} a b c; ar{1} = 21; ar{2} = 22; ar{3} = 23; run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_02.png)
例3(大かっこ[])
data ArrayTest_3; array ar[*] a b c; ar[1] = 31; ar[2] = 32; ar[3] = 33; run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_03.png)
例4(かっこ種類を混ぜてみる)
data ArrayTest_4; array ar[*] a b c; ar(1) = 41; ar{2} = 42; ar[3] = 43; run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_04.png)
こんな書き方でも問題なく動きます。
例5(変数に直接入力)
data ArrayTest_5; array ar[*] a b c; a = 51; b = 52; c = 53; run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_05.png)
よくある書き方。
例6(要素番号の最初を0(ゼロ)にしても認識するか)
data ArrayTest_6;
array ar[*] a b c;
ar[0] = 61;
ar[1] = 62;
ar[2] = 63;
run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_06.png)
他の言語の経験があるとこれが意外なところ。
配列の要素が1から始まるのは直感的に理解できる。
このあたりSASは開発者に優しい設計になっていると思います。
例7(文字変数の場合)
data ArrayTest_7;
array ar[*] $ a b c;
ar[1] = "aaa";
ar[2] = "bbbb";
ar[3] = "ccccc";
run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_07.png)
例8(ループと混ぜて見る)
data ArrayTest_8; array ar[*] a b c; do i = 1 to 3; ar[i] = i + 80; end; run;
![](https://ymddttm.com/wp-content/uploads/2019/12/2019-12-03_08.png)
実際はこの例のようにループと混ぜて使うことがほとんどです。
定番の書き方でもあるので、自分で書いてみて慣れておきたいです。
コメント