5.7 配列に新しい次元を追加する

Payments (支払い) 変数は、購入とリースを比較するのにこれまでのところあまり役に立っていません。リース費用は、1度限りではなく毎月支払うもので、所有者に帰属する純価 (Ownership equity) も考慮します。Payments 配列に新たな次元を追加し、時間と共に流動するキャッシュフローとして支払いをあらわす必要があります。

Period というタイトルで変数を新規作成し、0 から 24 月までの数列 (sequence) としてこれを定義します。

Tip: シーケンスのステップサイズが1の場合は、特別なショートカット構文があります。開始値のあとに、ピリオドを2つ追加して (..)、終了値を入力するものです。例えば、Period インデックスなら Index Period := 0..24 という具合に定義することができます。

 

次に、Payments の定義内容を編集して、先ほど作成したインデックスをこれに含めます。編集テーブルを使用して実際に入力してください:

1. Payments 変数を選択して、Definition フィールドを開きます。

2. Expression ポップアップメニューから Table を選択します。

3. Edit Table ボタンをクリックします。

 

Edit Table の左上に平行四辺形のラベルのついたボタンがあります。このボタンをクリックして、Indexes ウィンドウを開きます。Selected indexes リストに Period を追加します。

1. Edit Table の左上にある Index ボタンをクリックします。

2. Period インデックスを選択して、これを Selected Indexes リストに追加します。

注意:Analytica のデフォルトでは、追加するインデックス番号それぞれに対して現在の値を新規スライスの全てにコピーするように設定されています。

 

Edit Table は現在以下のようになっているはずです:

Payments 配列に Period インデックスが追加されます。

必要に応じてインデックスの縦と横を変更して、テーブルを図のように回転 (ピボット) してください。

 

単一のインデックス値に対応する部分配列をスライス (slice) といいます。Payments 配列に新たなインデックスを含めて拡張すると、元々あった値 (この事例では式) が Period のインデックス番号それぞれについて新規スライスの全てにコピーされます。

Payments 配列の内容はまだ正確ではありません。Purchase 列の Period 0 を除く全ての期間をゼロにする必要があります。リース費用は、Period 0 を除く 1 から 24 の間にする必要があるからです。全てのセルを希望する内容になるように編集するには、さほど苦労はいりません。配列の定義内容は、最終的に以下のようになります:

 

この内容でも動作はしますが、あまり効果的なアプローチであるとはいえません。一般に、スプレッドシートを編集するのと同じやり方でテーブルを自ら編集する場合、配列抽出 (array abstraction) 機能のメリットが損なわれてしまいます。