---
schema_version: "1"
id: 016cea76479ff63d3c7f93db34c06a7310e2d21359bc12d59fe0c2da42934818
title: フローでの R (Rserve) スクリプトの使用
collection: tableau
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/current/ja-jp/prep/prep_scripts._R.md
canonical_url: https://help.tableau.com/current/prep/ja-jp/prep_scripts._R.htm
source_site: help.tableau.com
content_type: documentation
content_hash: d6d99e9f3beefc9d88a81f42d1f6c5dbe4a3306de4ee3920888022b7bbfd69d0
description: Use R (Rserve) scripts in a Tableau Prep flow.
---
[メイン コンテンツに進む](#main-content)

# フローでの R (Rserve) スクリプトの使用

**免責条項:** このトピックには、サードパーティ製品に関する情報が含まれます。弊社ではサードパーティ製コンテンツを正確に参照するよう尽力しますが、ここで提供される情報は R および Rserve の変更に伴い通知なく変更される場合があります。最新情報については、R および Rserve のドキュメントおよびサポートを参照してください。

R は、オープン ソース ソフトウェア プログラミング言語であり、統計的計算やグラフィック向けのソフトウェア環境です。Tableau Prep Builder の機能を拡張するには、R でスクリプトを作成し、Rserve サーバーを介して実行するフローで使用して出力を生成します。これにより、フローでさらに多くの操作を行えるようになります。

たとえば、R のスクリプトを使用して統計モデリング データや予測データを既にフロー内に存在するデータに追加し、Tableau Prep Builder の機能を使用して、解析用の結果データ セットをクリーニングする必要があるとします。

R スクリプトをフローに含めるには、Tableau Prep Builder と Rserve サーバーの間の接続を構成する必要があります。次に、R スクリプトを使用して、サポートされる関数を R 式を用いたフローのデータに適用することができます。構成の詳細を入力し、使用するファイルと関数に Tableau Prep Builder を指定します。データが安全に Rserve サーバーへ渡され、式が適用されて、結果が必要に応じてクリーニングまたは出力できるテーブル (R data.frame) として返されます。

Rserve サーバーへの接続を構成している限り、Tableau Server でスクリプト ステップを含むフローを実行できます。Tableau Cloud では、スクリプト ステップを含むフローの実行は現在サポートされていません。Tableau Server を構成するには、[Tableau Server での Rserve サーバーの設定](#server_config)を参照してください。

## 前提条件

フローに R スクリプトの手順を含めるには、R をインストールして Rserve サーバーへの接続を構成します。

### リソース

- [R をダウンロードしてインストールします](http://cran.wustl.edu/)。Linux、Mac、または Windows に最新バージョンの R をダウンロードしてインストールします。
- [R Implementation notes](https://community.tableau.com/s/question/0D54T00000G54v3SAB/r-implementation-notes) (コミュニティへの投稿)。Windows で R および Rserve への接続をインストールおよび構成します。
- [Install and configure Rserve](http://www.rforge.net/Rserve/doc.html)。すべてのプラットフォームでの全般的なインストールおよび構成方法に関する指示。
    - [Rserve for Windows (release notes)](https://www.rforge.net/Rserve/rserve-win.html)。Windows に Rserve をローカルにインストールする場合の制限事項が記載されています。

### Tableau Server での Rserve サーバーの設定

Rserve サーバーと Tableau Server 間の接続を構成するには、次の手順を使用します。

- **バージョン 2019.3 以降**: Tableau Server でスクリプト ステップを含むパブリッシュされたフローを実行できます。
- **バージョン 2020.4.1 以降**: Tableau Server でスクリプト ステップを含むフローを作成、編集、および実行できます。
- **Tableau Cloud**: スクリプト ステップを含むフローの作成または実行は、現在サポートされていません。

1. TSM コマンド ラインを開きます。
2. 次のコマンドを入力して、ホスト アドレス、ポート値、接続タイムアウトを設定します。
    
    `tsm security maestro-rserve-ssl enable --connection-type {maestro-rserve-secure/maestro-rserve} --rserve-host <Rserve IP address or host name> --rserve-port <Rserve port> --rserve-username <Rserve username> --rserve-password <Rserve password> --rserve-connect-timeout-ms <RServe connect timeout>`
    
    - `{maestro-rserve-secure}` を選択してセキュリティで保護された接続を有効にするか、`{maestro-rserve}` を選択してセキュリティで保護されていない接続を有効にします。
    - `{maestro-rserve-secure}` を選択した場合は、コマンド ラインで証明書ファイル `-cf<certificate file path>` を指定します。
    - `--rserve-connect-timeout-ms <RServe connect timeout>` をミリ秒単位で指定します。例: `--rserve-connect-timeout-ms 900000`。
3. Rserve 接続を無効にするには、次のコマンドを入力します。
    
    `tsm security maestro-rserve-ssl disable`

### 追加の Rserve 構成 (オプション)

Rserv.cfg という名前のファイルを作成して、既定の構成値を設定し、Rserve をカスタマイズして `/etc/Rserve.conf` のインストール場所に配置できます。Rserve サーバーおよび Tableau Prep Builder の安定性を向上させるには、Rserve 構成に値を追加します。Rserve を起動すると、このファイルを参照して構成オプションを適用できます。例:

- Windows: `Rserve(args="--RS-conf C:\\folder\\Rserv.cfg")`
- MacOS および Linux: `Rserve(args=" --no-save --RS-conf ~/Documents/Rserv.cfg")`

次に、`Rserve.conf` 構成ファイルに追加できるオプションの例を示します。

\# If your data includes characters other than ASCII, make it explicit that data should be UTF8 encoded.
encoding utf8 
# Disable interactive behavior for Rserve or Tableau Prep Builder will stall when trying to run the script as it waits for an input response.
interactive no

Rserve.conf ファイルの設定に関する詳細については、[R Implementation notes](https://community.tableau.com/s/question/0D54T00000G54v3SAB/r-implementation-notes) (コミュニティへの投稿) の「Advanced Rserve configuration」セクションを参照してください。

## R スクリプトの作成

スクリプトを作成するときは、データ フレームを関数の引数として指定する関数を含めます。これにより、Tableau Prep Builder からデータが呼び出されます。また、サポートされるデータ型を使用して、データ フレームの結果を返す必要もあります。

例:

postal\_cluster <- function(df) {      
  out <- kmeans(cbind(df$Latitude, df$Longitude), 3, iter.max=10)
  return(data.frame(Latitude=df$Latitude, Longitude=df$Longitude, Cluster=out$cluster))
 }

次のデータ型がサポートされています。

<table style="width: 100%;" class="simple-table"><colgroup><col> <col></colgroup><tbody><tr><th>Tableau Prep Builder のデータ型</th><th>R のデータ型</th></tr><tr><td>文字列</td><td>標準の UTF-8 文字列</td></tr><tr><td>Decimal</td><td>Double</td></tr><tr><td>Int</td><td>整数</td></tr><tr><td>Bool</td><td>Logical</td></tr><tr><td>日付</td><td>ISO_DATE 形式「YYYY-MM-DD」に必要に応じてゾーンのオフセットを加えた文字列。たとえば、「2011-12-03+01:00」は有効な日付です。</td></tr><tr><td>DateTime</td><td>ISO_DATE_TIME 形式「YYYY-MM-DDT:HH:mm:mm:ss」に必要に応じてゾーンのオフセットを加えた文字列。たとえば、「2011-12-03T10:15:30+01:00」は有効な日付です。</td></tr></tbody></table>

**注**: Date と DateTime は、常に有効な文字列として返される必要があります。R のネイティブな日付型 (DateTime) は戻り値としてサポートされていませんが、スクリプトで使用できます。

入力した内容と異なるフィールドを返す場合は、出力とデータ型を定義するスクリプトに getOutputSchema 関数を含める必要があります。この関数を含めないと、出力は入力データのフィールドを使用します。このフィールドは、フローのスクリプトの手順の前にある手順で取得されます。

getOutputSchema でフィールドのデータ型を指定する場合は、次の構文を使用します。

<table style="width: 100%;" class="simple-table"><colgroup><col> <col></colgroup><tbody><tr><th>R の関数</th><th>結果のデータ型</th></tr><tr><td>prep_string ()</td><td>文字列</td></tr><tr><td>prep_decimal ()</td><td>Decimal</td></tr><tr><td>prep_int ()</td><td>整数</td></tr><tr><td>prep_bool ()</td><td>ブール値</td></tr><tr><td>prep_date ()</td><td>日付</td></tr><tr><td>prep_datetime ()</td><td>DateTime</td></tr></tbody></table>

次に、postal\_cluster スクリプトで getOutputSchema 関数を使用する場合の例を示します。

getOutputSchema <- function() {      
  return (data.frame (
    Latitude = prep\_decimal (),
    Longitude = prep\_decimal (),
    Cluster = prep\_int ()));
}

## Rserve サーバーに接続する

> [!IMPORTANT]
> 
> **重要**: Tableau Prep Builder バージョン 2020.3.3 以降では、上部の \[ヘルプ\] メニューからサーバー接続を一度に構成します。\[Rserve サーバーに接続\] をクリックして接続の詳細を入力し、スクリプト ステップでフローごとに接続を設定するということは行いません。古いバージョン Tableau Prep Builder で作成されたフローをバージョン 2020.3.3 で開く場合、この新しいメニューを使用して接続をもう一度構成する必要があります。

1. \[ヘルプ\] > \[設定とパフォーマンス\] > \[Manage Analytics Extension Connection (分析拡張機能接続の管理)\] を選択します。
2. \[Select an Analytics Extension (分析拡張機能の選択)\] ドロップダウン リストで \[Rserve\] を選択します。
    
    ![分析拡張機能接続のセットアップにログインするフォーム。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_scripts_r_signin.png)
3. 認証資格情報を入力します。
    - ポート 6311 は、プレーンテキスト形式の Rserve サーバーの既定のポートです。
    - ポート 4912 は、SSL で暗号化された Rserve サーバーの既定のポートです。
    - サーバーで認証資格情報が必要な場合は、ユーザー名とパスワードを入力します。
    - サーバーで SSL 暗号化を使用する場合は、\[SSL が必要\] チェック ボックスをオンにして \[カスタム設定ファイル\] リンクをクリックし、接続に必要な証明書を指定します。
        
        **注**: Tableau Prep Builder では接続をテストできません。接続に問題がある場合は、フローの試行および実行時にエラー メッセージが表示されます。

## フローへのスクリプトの追加

Rserve サーバーを起動して、次の手順を実行します。

1. Tableau Prep Builder を開いて、\[接続の追加\] ![データ接続を追加するためのボタン。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_addconnection.png) ボタンをクリックします。
    
    Web オーサリングでは、ホーム ページで \[作成\] > \[フロー\] をクリックするか、\[探索\] ページで \[新規作成\] > \[フロー\] をクリックします。次に \[データへの接続\] をクリックします。
2. コネクタのリストより、ファイルの種類またはデータをホストするサーバーを選択します。プロンプトが表示される場合には、サインインおよびデータへのアクセスに必要な情報を入力します。
3. プラス ![プラス記号が付いたボタン。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_addicon.png) アイコンをクリックし、コンテキスト メニューから \[スクリプトの追加\] を選択します。
    
    ![Tableau Prep にスクリプトを追加します。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_script_add.png)
4. \[スクリプト\] ペインの \[接続タイプ\] で、\[Rserve\] を選択します。
    
    ![接続タイプの設定を行うスクリプト。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_script_script_pane.png)
5. \[ファイル名\] セクションで、\[参照\] をクリックしてスクリプト ファイルを選択します。
6. \[関数名\] を入力してから、\[Enter\] キーを押してスクリプトを実行します。
    
    ![接続タイプの設定を行うスクリプト。](/tableau/current/ja-jp/prep/ja-jp/Img/prep_script_pane2.png)