行間の反復処理
このデモでは、for each row 関数を使って行を反復処理する方法を見ていきます。まず、セクションのスクリプトからBig Classデータを取得し、BMI(Body Mass Index)値を含む新しい列を作成するスクリプトを作成します。そして、for each row 関数を使ってその列に値を入力します。BMIは、ポンド単位の体重を身長(ここではインチ単位)の2乗で乗じて割り算することで計算されます。Ctrl+T を使って新しいスクリプトエディタウィンドウを開きます。これらのウィンドウを並べ替えて、背景のデータテーブル、ログ、スクリプトが表示されるようにします。現在のデータテーブルにメッセージを送信します。「current」と正しく入力すると、青色に変わります。青色に変わらなかったことから、タイプミスだったことが分かりました。そこで、「New column」というメッセージを送信します。括弧内には、new column の必須引数としてタイトルを指定します。セミコロンを挿入します。そして改行して各行に入力します。ここでも、JMPが自動的に大文字に変換します。各行にコロン、BMIと入力します。つまり、コロン演算子を使っています。そして、BMIの計算結果を代入します。分子には括弧を開きます。コロンの体重÷(分母)です。括弧を使って分母を分離します。ただし、演算の順序上、これは必須ではありません。コロンの身長を累乗します。そして、フォーマットを変更します。これで、スペースが大文字の組み込み名に自動的に挿入されます。スクリプトを実行します。背景の表を見ると、BMI列が作成され、値が入力されていることがわかります。列作成時に、例えば固定の小数点形式などのフォーマットを指定することもできますし、作成後にメッセージとして送信することもできます。今回の目的のため、これ以上の改良は行いません。ただし、今後この列を操作したい場合は、最初の行の結果を変数に保存しておき、メッセージを送信するたびに列名を入力する代わりに、その変数を使用することもできることを指摘しておきます。つまり、ここでは、for each row を使ってデータテーブルの行を反復処理し、数式を使わずにデータを入力する方法を確認しました。