基本操作

R AnalyticFlowの起動

第2章に従ってR AnalyticFlowをインストールし、起動します。 起動方法および初期設定については起動、初期設定および終了項を参考にしてください。

ノードの作成

まず、分析の対象となるサンプルデータを読み込みます。 今回はRのサンプルデータから "iris" データセットを利用します。 これはアヤメの花を測定した有名なデータで、詳しくは Fisher (1936)、およびRからhelp(iris)を参照してください。

R AnalyticFlowでは、基本的に全ての処理をノードを作成することで記述します。 ここでは、データの読み込みを行うノードを作成しましょう。 メインウィンドウのメニューから「ノード」→「一行ノードの作成」をクリックしてください。

一行ノードは一行のRコードで表される処理を記述します。 「コード」に

data(iris)

と入力してください。

「OK」をクリックすると、フロー領域にノードが作成されます。

ノードの実行

ノードを作成しただけでは、実際の処理は行われません。 記述した処理を実行するには、ノードを右クリックして「実行」をクリックします。 いま作成したdataノードを実行すると、コンソールウィンドウに以下のように表示されます:

> data(iris)
> 

ノードを実行すると、ノードに記述されたRコードがコンソールに送られて実行されます。 ここではdata(iris)が既に実行され、Rが入力待ちの状態であることがわかります。

コンソールからの実行

コンソールから直接Rコードを実行することも可能です。 データの中身を確認するためにhead関数を実行するには、以下のように入力します:

エンターキーを押すと入力したコードが実行され、データの最初の数行が表示されます。 このデータには4つの量的変数(花びら、がくの幅と長さ)と1つの質的変数(Species、アヤメの品種)があることがわかりました。 このように、データのちょっとした確認などを行う場合にはコンソールからの直接入力が便利です。

ティップ

コードを入力してエンターキーを押すとコードが実行されますが、 代わりにコントロールキー(Macの場合はコマンドキー)を押しながらエンターキーを押すと、 入力したコードを表す一行ノードが作成されます。 コンソール上で試行錯誤し、必要なものだけをフローとして残すことができます。

フローの作成

では、メインウィンドウに戻ってノードを追加しましょう。 フロー領域の空白部分をクリックすると、先ほど作成したノードは 次のように表示されているはずです。

カギ型の囲みはこのノードが最後に実行されたノードであることを示します。 これを左クリックして、次のような選択状態にします。

選択状態でノードを作成すると、選択されたノードから新たに作成されたノードに 自動的にエッジ(矢印)が引かれます。 メインウィンドウのメニューから「ノード」→「一行ノードの作成」をクリックし、 次のコードを入力してください:

plot(iris[, 1:4], col = as.integer(iris$Species) + 1)

自動的にエッジが作成され、次に示すようなフローが作成されます:

フローの実行

フロー上のノードを実行すると、ルートノード(最も上流のノード)から順に実行されます。 ただし、直前に実行したノード(カギ囲み)が上流にある場合、 その次のノードから順に実行されます。 いま作成したplotノードを右クリックして実行してみましょう。 グラフィックウィンドウに以下のような図が表示されます:

4つの量的変数の散布図が描かれました。 データ点の色はSpeciesを表しており、量的変数をうまく使えば アヤメの品種を判別できそうなことがわかります。

ティップ

このときコンソールウィンドウを見てみると、 先ほど実行したhead関数に続いて plot関数だけが実行されていることがわかります。

> data(iris)
> head(iris)
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa
2          4.9         3.0          1.4         0.2  setosa
3          4.7         3.2          1.3         0.2  setosa
4          4.6         3.1          1.5         0.2  setosa
5          5.0         3.6          1.4         0.2  setosa
6          5.4         3.9          1.7         0.4  setosa
> plot(iris[, 1:4], col = as.integer(iris$Species) + 1)
> 

これは、フロー上では上流にあるdata関数が すでに実行されているため、改めて実行する必要はないと考えられるためです。 フローをルートノードから改めて実行したいときには 「実行」の代わりに「クリアして実行」を選択してください。 Rワークスペース上のオブジェクトを全てクリアし、ルートノードから 実行したノードまでの全てのノードが順に実行されます。

エッジの操作

先ほどの散布図から、Species(アヤメの品種)によって Petal.Length(花びらの長さ)が大きく異なることが見て取れます。

この関係をより詳しく調べるために、箱ひげ図を作成してみましょう。 plotノードが選択されていることを確認して、 以下のコードを表す一行ノードを作成してください:

boxplot(Petal.Width ~ Species, data = iris, col = 3, main = "Petal.Width")

すると以下のようなフローが作成されます:

ここでboxplotノードはplotノードの下流にあるため、 boxplotを実行する際には必ずplotが実行されることになります。 探索的分析の順序としてはそれで構いませんが、後で結果を再確認する際には 特にこの順序に従う必要はありません。

そこで、boxplotノードがplotと同じく、 dataの直後に来るようにエッジを付け替えます。 これにはいくつかの方法がありますが、最も簡単な方法は dataからboxplotに直接エッジを作成する方法です。

まず、エッジの元となるdataノードをクリックして 選択状態にします:

この状態で、エッジの先となるboxplotノードを 中クリック、またはAltキーを押しながらクリックします:

これで新たにエッジが作成され、既存のエッジが置き換えられました。 このままでは見づらいので、boxplotノードをドラッグして 見やすい位置に配置します:

これでエッジの操作は完了です。 最後に実行されたplotノードはboxplotノードの 上流にはないため、boxplotを実行するとdataから 順に実行されます。

フローの保存

ここで作成した分析フローを保存しておきましょう。 メニューから「ファイル」→「名前を付けて保存」をクリックして保存します。 保存したフローは「ファイル」→「開く」などから読み込むことができます。