配列からのデータ抽出

<< Click to Display Table of Contents >>

マニュアル > 画面作成ガイド > スクリプト > スクリプトの記述例 > スクリプトTips集 >

配列からのデータ抽出

配列からのデータ抽出

PA-Panelのスクリプトの配列は、インデックスの指定方法が豊富に用意されています。「A[0]」などの単純な添え字指定のみならず、範囲指定や比較条件などによるデータ抽出が可能です。

 

ここでは、特徴的な抽出例について紹介します(多次元配列としての利用も可能です)。

 

 

hint

ここで紹介する配列の抽出例以外の利用方法は「配列」を参照下さい。

 

 

インデックスによる範囲指定
添え字にコロン「:」一文字で区切って範囲を指定すると、指定した範囲のデータを抽出できます(※添え字は0から始まる番号です)。

var vT_a = c(1, 2, 3, 4, 5);                // vT_a[0]~vT_a[4]までの配列に、1から5までの値を連続して格納

var vT_b = vT_a[ 1:3 ];                        // vT_b[0]~vT_b[2]に、2, 3, 4 が格納される

 

ブール条件による抽出
配列の要素数と同じブール値の配列を渡すと、Trueの要素のみを抽出できます。

var vT_a = c(1, 2, 3, 4, 5);

var vT_b = vT_a[c(T, F, T, F, T)]; // vT_b[0]~vT_b[2]に、1, 3, 5 が格納される

例えば、抽出条件が複雑な場合など、抜き出したい要素位置を求めるためのチェック処理用の関数を別途作成しておき、関数によって求めたブール配列を使って配列から抜き出す、といった応用が可能です。

 

比較条件による抽出1

配列要素に対する比較条件を指定すると、条件に合致するデータのみを抽出できます。

var vT_a = c(1, 2, 3, 4, 5);

var vT_b = vT_a[ vT_a < 4 ];                // vT_b[0]~vT_b[2]に、1, 2, 3 が格納される

 

比較条件による抽出2

例えば、不特定の文字列が格納されている配列で、長さゼロの文字列(「“”」)以外の要素のみを取得することもできます。配列要素に対する比較条件を指定すると、条件に合致するデータのみを抽出できます。

var vT_a = c(“AAA”, “”, “”, “BBB”, “CCC”);

var vT_b = vT_a[ vT_a != “” ];         // vT_b[0]~vT_b[2]に、”AAA”,”BBB”,”CCC” が格納される