![]() |
| サイトマップ | |
|
トランスフォーム方程式は、変数 (variables) と関数 (functions) で構成されます。スカラーや範囲に変数を定義したり、関数を適用するには、演算子 (Operators) を使用します。スカラー (scalar) は、ワークシートの単一のセル、数値、欠損値、テキスト文字列です。範囲 (range) は、ワークシートの1列またはその中のスカラー集合です。
![]() |
変数 (Variables) をトランスフォーム内で定義したら、それを他の方程式で使用することができます。変数を定義するには以下の形式に従います:
variable (変数) = expression (式)
変数名は必ずアルファベットの文字で始めます。2文字目以降には、任意の文字や数字、または、アンダースコア (_
) を含めることができます。変数名は、大文字と小文字が区別されます。すなわち、"A
" と "a
" は別なものとして区別されます。ある式で変数を定義すると、同一のトランスフォーム内でその変数を再定義することはできません。
関数 (Functions) は、変数に似ていますが、特定の式ではなく、一般式 (general expression) を参照する点が異なります。一般式を参照するので関数には引数 (arguments) が必要となります。関数を宣言する構文は以下のようになります:
function(argument 1,argument 2,...) = expression
ここで function は関数名で、その後に括弧で1つ以上の引数名 (argument) が括られています。関数名と引数名は、変数名と同じルールに従う必要があります。
ユーザー定義関数:よく使う関数をクリップボードにコピーし、トランスフォームウィンドウに貼り付けることができます。
トランスフォームのコンストラクトは、関数よりも複雑なプロシージャを実行できる特殊な構造体です。コンストラクトは、最初に条件文を記述し、その後、ひとつ以上のトランスフォーム方程式が続き、最後に終了文で終わります。利用できるコンストラクトは、for loop
と if...then...else
文です。
四則演算、関係演算、論理演算に使う演算子はすべて用意されています。四則演算子は、数と数の単純な計算を行います。関係演算子は、数、変数、方程式間の範囲や条件を定義します。論理演算子は、if 文で単純な条件を設定します。詳しくは、トランスフォームの演算子をご覧ください。
入力できる数の形式は、整数 (integers)、浮動小数点方式 (floating point style)、または、科学的記数法 (scientific notation) です。いずれも有効桁数は 15 です。数の前にマイナス符号が付けば負の値をあらわします。
ワークシート内で2つのダッシュ (--
) で表現される欠損値は、非数値とみなされます。四則演算に欠損値が含まれる場合、その結果も欠損値となります。
欠損値を生成するには、ゼロをゼロで割ります。
missing = 0/0
N = size({1,2,3,missing}) col(1) = N(size 関数は、ラベルや欠損値を含む範囲内の要素の個数を返します。)
トランスフォーム言語では、連続する2つダッシュは認識されません。例えば、文字列 {1,2,3,--} は範囲として正しく認識されません。ダッシュはワークシートで欠損値を表現する場合しか使用することはできません。
ワークシートのセルに入力されたテキストラベルなどの文字列 (String) も非数値情報です。トランスフォームでテキスト文字列を定義する場合は、その両側をダブルクォーテーション ("") 記号で括ります。
文字列は、欠損値と同じく原則として演算できませんが、演算を伝播させることはできます。文字列と文字列の辞書的比較を行い、その結果に応じて true (真) または false (偽) を返す関係演算子 (比較演算子) はその例外です。
トランスフォーム言語で認識する要素は2種類あります:スカラー (scalars) と範囲 (ranges) です。スカラーは、単一の数、文字列、または、欠損値です。ワークシートの単一セル内に配置できるものはすべてスカラーとなります。
範囲 (ベクトルまたはリスト) は、単一または複数のスカラーの一次元配列です。ワークシートの列は範囲とみなされます。
範囲は、中括弧 {} 表記を使って定義することもできます。範囲の要素は中括弧の中に順番にコンマで区切って記入します。スカラーを利用できる関数のほとんどは、範囲についても特別な制限なしに使用できます。一般に、スカラーに実行できる関数は、範囲内の各データに対しても繰り返し実行することができます。単一のセルにも、列全体についても、同一の関数を実行できます。
{1,2,3,4,5}
{col(1), col(2)}このとき範囲を構成する要素は同一の型である必要はありません。例えば、数、ラベル、欠損値が含まれていても構いません。
範囲内の個々のスカラーにアクセスするには、コンストラクタに大括弧 [] 表記を使用します。ある範囲をこの括弧でくくると、括弧に挟まれた各項目は、その範囲の個々のスカラーにアクセスし、その要素を再配列した新しい範囲となります。
x = {1.4,3.7,3.3,4.8}
x[3]
x[{4,1,2}]
col(3,2,2)
または cell(3,2)
と同じ結果になります。
col(3)[2]
{2,4,6,8}[3]
col(1)[{1,3,5}]
![]() |
![]() |
![]() |
![]() |