27.3.3 トランスフォームの構成要素

トランスフォーム方程式は、変数 (variables) と関数 (functions) で構成されます。スカラーや範囲に変数を定義したり、関数を適用するには、演算子 (Operators) を使用します。スカラー (scalar) は、ワークシートの単一のセル、数値、欠損値、テキスト文字列です。範囲 (range) は、ワークシートの1列またはその中のスカラー集合です。

図 380: Transform ウィンドウに入力したトランスフォーム方程式の構成要素の例
  1. 変数 (Variables)
  2. 関数 (Functions)
  3. コンストラクト (Constructs)
  4. 演算子 (Operators)
  5. 数 (Numbers)
  6. スカラーと範囲 (Scalars and Ranges)
  7. 配列参照 (Array References)

 

1. 変数 (Variables)

変数 (Variables) をトランスフォーム内で定義したら、それを他の方程式で使用することができます。変数を定義するには以下の形式に従います:

variable (変数) = expression (式)

変数名は必ずアルファベットの文字で始めます。2文字目以降には、任意の文字や数字、または、アンダースコア (_) を含めることができます。変数名は、大文字と小文字が区別されます。すなわち、"A" と "a" は別なものとして区別されます。ある式で変数を定義すると、同一のトランスフォーム内でその変数を再定義することはできません。

 

2. 関数 (Functions)

関数 (Functions) は、変数に似ていますが、特定の式ではなく、一般式 (general expression) を参照する点が異なります。一般式を参照するので関数には引数 (arguments) が必要となります。関数を宣言する構文は以下のようになります:

function(argument 1,argument 2,...) = expression

ここで function は関数名で、その後に括弧で1つ以上の引数名 (argument) が括られています。関数名と引数名は、変数名と同じルールに従う必要があります。

ユーザー定義関数:よく使う関数をクリップボードにコピーし、トランスフォームウィンドウに貼り付けることができます。

 

3. コンストラクト (Constructs)

トランスフォームのコンストラクトは、関数よりも複雑なプロシージャを実行できる特殊な構造体です。コンストラクトは、最初に条件文を記述し、その後、ひとつ以上のトランスフォーム方程式が続き、最後に終了文で終わります。利用できるコンストラクトは、for loop と if...then...else 文です。

 

4. 演算子 (Operators)

四則演算、関係演算、論理演算に使う演算子はすべて用意されています。四則演算子は、数と数の単純な計算を行います。関係演算子は、数、変数、方程式間の範囲や条件を定義します。論理演算子は、if 文で単純な条件を設定します。詳しくは、トランスフォームの演算子をご覧ください。

 

5. 数 (Numbers)

入力できる数の形式は、整数 (integers)、浮動小数点方式 (floating point style)、または、科学的記数法 (scientific notation) です。いずれも有効桁数は 15 です。数の前にマイナス符号が付けば負の値をあらわします。

ワークシート内で2つのダッシュ (--) で表現される欠損値は、非数値とみなされます。四則演算に欠損値が含まれる場合、その結果も欠損値となります。

欠損値を生成するには、ゼロをゼロで割ります。

トランスフォーム言語では、連続する2つダッシュは認識されません。例えば、文字列 {1,2,3,--} は範囲として正しく認識されません。ダッシュはワークシートで欠損値を表現する場合しか使用することはできません。

ワークシートのセルに入力されたテキストラベルなどの文字列 (String) も非数値情報です。トランスフォームでテキスト文字列を定義する場合は、その両側をダブルクォーテーション ("") 記号で括ります。

文字列は、欠損値と同じく原則として演算できませんが、演算を伝播させることはできます。文字列と文字列の辞書的比較を行い、その結果に応じて true (真) または false (偽) を返す関係演算子 (比較演算子) はその例外です。

 

6. スカラーと範囲 (Scalars and Ranges)

トランスフォーム言語で認識する要素は2種類あります:スカラー (scalars) と範囲 (ranges) です。スカラーは、単一の数、文字列、または、欠損値です。ワークシートの単一セル内に配置できるものはすべてスカラーとなります。

範囲 (ベクトルまたはリスト) は、単一または複数のスカラーの一次元配列です。ワークシートの列は範囲とみなされます。

範囲は、中括弧 {} 表記を使って定義することもできます。範囲の要素は中括弧の中に順番にコンマで区切って記入します。スカラーを利用できる関数のほとんどは、範囲についても特別な制限なしに使用できます。一般に、スカラーに実行できる関数は、範囲内の各データに対しても繰り返し実行することができます。単一のセルにも、列全体についても、同一の関数を実行できます。

 

例1

 

例2

 

例3

 

7. 配列参照 (Array References)

範囲内の個々のスカラーにアクセスするには、コンストラクタに大括弧 [] 表記を使用します。ある範囲をこの括弧でくくると、括弧に挟まれた各項目は、その範囲の個々のスカラーにアクセスし、その要素を再配列した新しい範囲となります。

 

 

 

図 381: User Defined Transform ウィンドウに入力した範囲と配列参照操作の例