Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Anchor
top
top

Table of Contents
classcontents

Info

これまでマーケットプレイス (サポートサイト) に掲載されていたRモデル予測のプラグインは、今後サポートされません (2023年11月1日をもって終了)。詳細はこちらの記事をご確認ください。これらのコードのレガシーバージョンへのアクセスをご希望の場合は、Yellowfin サポートチームまでお問い合わせください。

概要

Rは、統計的計算のための強力なプログラミング言語、およびソフトウェア環境です。Rで作成されたスクリプトをYellowfinと組み合わせることで、データの高度な統計分析を行うことができます。

...

    • Rserveパッケージが実行されているRインスタンスへのアクセス
    • 少なくともひとつの有効なRスクリプトYellowfinインスタンスへRのプラグインのインストール。Rのプラグインは、マーケットプレイスからダウンロードすることができます。
    • YellowfinインスタンスへRのプラグインのインストール。より詳細な情報は、Yellowfin サポートチームにお問い合わせください。


Rスクリプトを使用するために、データトランスフォーメーションモジュールを使用するユーザーは、スクリプトを熟知し、入力や出力要件を把握していなくてはいけません。

Rserveについて詳細な資料は、こちらを参照してください。:https://cran.r-project.org/web/packages/Rserve/Rserve.pdf

一般的なワークフロー

こちらがプロセスの簡単な概要です。こちらの項目では、これらのステップの大部分について、詳細に説明します。

  1. Rのインスタンスへのアクセスを確立するか、自身でセットアップをします。Rスクリプトを記述し、それが有効であることを確認します。このインスタンスは、スクリプトを実行するために使用されます。
  2. Yellowfinインスタンスへ、Rのプラグインをインストールします。(プラグインは、マーケットプレイスからダウンロードできます。※日本国内のユーザーは、Yellowfin サポートサイトからダウンロードしてください。)プラグインのインストール方法は、Yellowfinインスタンスへ、Rのプラグインをインストールします。プラグインのインストール方法は、こちらを参照してください。
  3. Yellowfinのデータトランスフォーメーションモジュールを使用して、トランスフォーメーションフローを作成します。これには、モジュールへのデータインポートと、必要に応じて、その他トランスフォーメーションの適用が必要です。
  4. フローにRトランスフォーメーションステップを使用し、これを設定します。(ステップの設定方法は、以下の情報を参照してください。)
  5. ステップを実行し、スクリプトがデータを使用して生成する出力を確認します。

...

    • Append(追加):追加は、既存データにカラム(列)が追加された場合に使用されます。このオプションは、Rスクリプトが追加されたカラム(列)とともに、元のデータを返すようにデザインされている場合に使用されます。
    • Replace(置き換え):スクリプトが特定のカラム(列)を出力し、元のデータを返す必要のない場合にこちらのオプションを使用します。


Rスクリプトの基準

Rスクリプトを記述する際には、それがYellowfinで機能することを確認しなくてはいけません。以下のガイドラインを使用して、確認をすることができます。

例1:Append(追加)

こちらは、入力データにカラム(列)を2つ追加することで出力を返す基礎的なスクリプトの例です。これは、Append(追加)オプションがどのように利用できるのかを示しています。

Code Block
outData<-data.frame(c(yfData), yfData[1], yfData[3])

こちらはスクリプトの内訳と、それをYellowfin内でどのように設定するのかを示しています。

    • yfData:yfDataは入力データを含むデータフレーム、またはスクリプトの前のステップから渡されるデータです。これは、ステップの設定時に、入力変数として提供する名前です。
    • yfData[1]/yfData[3]:スクリプトはデータフレーム全体を入力し、カラム(列)1とカラム(列)3を追加します。こちらの例は、特定のデータカラム(列)を指定する場合のインデックスの使用方法を示しています。
    • outData:出力変数の名前です。組み合わせられた結果は、こちらの変数へ保存されます。

これらの変数名は、Rステップ内でスクリプトを設定する際に使用します。(例を以下に示します)

Image Removed

例2:Replace(置き換え)

このスクリプトは、入力されるデータからひとつの数値カラム(列)のみを取得し、そのカラム(列)上で計算を実行するように記述されています。Replace(置き換え)オプションは、このスクリプトを設定する際に使用します。

Code Block
outData<-data.frame(yfData$Income*2.5)

以下は、このスクリプトの説明です。

    • yfData:入力変数であるyfDataデータフレームから取得される入力されるデータです。
    • Income:入力データから取得されるカラム(列)フィールドの名前です。(こちらでは、インデックス番号を使用せずに、$シンボルを使用することで、直接カラム(列)名を参照しています。)このフィールドのすべてのロウ(行)は、2.5倍されます。
    • outData:計算の結果が保存される出力変数です。

このスクリプトを設定する際には、Rステップ設定パネルで、yfDataは入力変数、outDataは出力変数として提供されます。返されるフィールドの合計数として1を入力します。

Image Removed

ガイドライン:YellowfinでのRスクリプトの使用

パート1:Rのセットアップ

Rserveが実行されている最新バージョンのR(少なくともv3.4.0以降)を準備することを推奨します。最新バージョンは、こちらからダウンロードすることができます:https://cran.r-project.org/mirrors.html Rserveを実行するR環境にはRStudioの使用を推奨します。

以下のコマンドを参照して、Rインスタンスをセットアップしてください。

Windows端末上でのRの実行

...

Code Block
install.packages("Rserve") #This installs Rserve package
library(Rserve)  #This loads Rserve package
Rserve()   #This starts Rserve

...

Code Block
run.Rserve(args=" --RS-enable-remote")

Linux CentOSへのRとRserveのインストール

...

Code Block
yum install epel-release -y #Required to install R
yum install R -y  #Installs R
wget  https://download2.rstudio.org/rstudio-server-rhel-1.0.44-x86_64.rpm  #Installs RStudio. (You might want to install a different version though.)

...

コマンドの実行に成功すると、Rサービスが自動的に実行されます。

...

Code Block
systemctl status rstudio-server.service

...

Code Block
sudo -i R

...

Code Block
install.packages("Rserve") #This installs Rserve package
 
library(Rserve)  #This loads Rserve package

...

Code Block
R CMD Rserve --RS-enable-remote --RS-port port

ここでポートは、Rを起動するポート番号を示します。

...

Linux UbuntuへのRとRserveのインストール

...

Code Block
sudo apt-get update
sudo apt-get install r-base r-base-dev
sudo apt-get install gdebi-core
wget https://download1.rstudio.org/rstudio-0.99.896-amd64.deb
sudo gdebi -n rstudio-0.99.896-amd64.deb

...

Code Block
sudo -i R

...

Code Block
install.packages("Rserve") #This installs Rserve package
 
library(Rserve)  #This loads Rserve package

...

Code Block
R CMD Rserve --RS-enable-remote --RS-port port

ここでポートは、Rを起動するポート番号を示します。

...

Note

このトランスフォーメーションステップを適切に機能させるためには、RインスタンスとRserveの適切なセットアップと実行が必要です。

パート2:トランスフォーメーションフローでのRスクリプトの使用

R スクリプトを使用して、データへ適用するためには、以下の手順に従います。

...

Image Removed

...

Note

YellowfinはRserveパッケージを利用します。接続を試行する前に、Rserveをインストールし、実行しなくてはいけません。

...

Note

ファイル形式が適切であることを確認してください。例:「.r」拡張子が必要です。

...

  1. Append(追加):スクリプトが、入力データとともに新規フィールドの生成を返す場合は、こちらの方法を選択します。データに追加される新規フィールド数を指定します。
  2. Replace(置き換え):スクリプトが、デザインされた結果を返す場合は、こちらの方法を選択します(これは新規フィールドのみの場合もあれば、新規フィールドと入力フィールドの組み合わせの場合もあり、スクリプト作成者が、スクリプトがどのような結果を生成するようにデザインをしているかに応じて異なります)。Rスクリプトが生成するフィールドの合計数を入力します。

...

ステップ実行時の問題

こちらの項目では、ステップの実行が失敗するいくつかの例を紹介します。

    • スクリプトへのファイルパスが不正確
    • スクリプトから返されたフィールド数が、入力時に指定したフィールド数と不一致
    • Rserveへの接続の断絶(この場合、空のテーブルが表示されることが多いです)
    • アップロードしたスクリプトが有効なRスクリプトではない

Rserveへの接続の断絶

ステップの設定後に、Rserveへの接続が断絶する場合があります。その場合は、以下のエラーメッセージが表示されます。

Image Removed

これ自体は大きな問題ではありません。Rserveへの接続を再起動し、「適用」ボタンをクリックして、再度ステップを実行します。接続が適切に確立されると、ステップは適切に実行されます。

不正確なフィールド値

追加される/返される合計フィールド数が不正確な場合は、ステップの実行時に以下のエラーが表示されます。

...