次の方法で共有


チュートリアル:R スクリプトから R ビジュアルにフィルター プロットを作成する

この記事では、R ビジュアルで R スクリプトを使用してじょうごプロットを作成する方法を順を追って説明します。 それぞれの一連の手順で、ソース ファイルをダウンロードできます。

この記事では、次の方法について説明します。

  • RStudio の R スクリプト
  • Power BI の R ビジュアル
  • Power BI での "PNG ベースの"、R を利用したビジュアル
  • Power BI での "HTML ベースの"、R を利用したビジュアル

じょうごプロットを使用すると、予想されるバリエーションの量を簡単に使用、解釈、および表示することができます。 じょうご は、信頼制限を使用して形成され、外れ値はじょうごの外側にドットとして表示されます。

この例では、じょうごプロットを使用して、さまざまなセットのデータを比較および分析します。

前提条件

セマンティック モデルを使って R スクリプトを作成する

  1. 最小の R スクリプト とそのデータテーブル (dataset.csv) をダウンロードします。

  2. 次に、スクリプトの編集を行って、こちらのスクリプトをミラーリングします。 これにより、入力エラー処理とユーザー パラメーターが追加され、プロットの外観を制御できます。

レポートを作成する

次に、スクリプトの編集を行って、こちらのスクリプトをミラーリングします。 これにより、read.csv ではなく dataset.csv が Power BI デスクトップ ワークスペースに読み込まれ、がん死亡率テーブルが作成されます。 次の PBIX ファイルの結果を確認してください。

注意

dataset は、任意の R ビジュアルの入力 data.frame に対してハードコーディングされた名前です。

R コードで R を利用したビジュアルとパッケージを作成する

  1. 次のコマンドを実行して、R を利用した新しいビジュアルを作成します。

    pbiviz new funnel-visual -t rvisual
    cd funnel-visual
    npm install 
    pbiviz package
    

    このコマンドによって、初期テンプレート ビジュアル (-tテンプレートに対応する) を含むフォルダー funnel-visual が作成されます。 PBIVIZ は dist フォルダー内の script.r ファイルに含まれる R コードです。 それを Power BI にインポートして、何が起こるかを試してみてください。

  2. script.r ファイルを編集して、その内容を前のスクリプトに置き換えます。

  3. capabilities.json を編集して、文字列 Valuesdataset に置き換えます。 これにより、テンプレート内の "ロール" の名前が置き換えられ、R コード内と同様になります。

    json ファイルに対する変更の差分比較のスクリーンショット。

  4. (省略可能)dependencies.json を編集して、R スクリプトで必要とされる各 R パッケージのセクションを追加します。 これにより、ビジュアルが初めて読み込まれる場合に、これらのパッケージを自動的にインポートするように Power BI に指示が出されます。

    cranPackages の項目にコンテンツが追加されたときの差分比較を表示するスクリーンショット。

  5. pbiviz package コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。

注意

ダウンロードについては、PBIXソースコードを参照してください。

R ベースのビジュアルの改善

ユーザーは入力テーブル内の列の順序を理解する必要があるため、ビジュアルはまだユーザー フレンドリとは言えません。

  1. 入力フィールド dataset を次の 3 つのフィールド (ロール) に分割します: PopulationNumberTooltips

    CV01to02

  2. capabilities.json を編集して、dataset ロールを 3 つの新しいロールに置き換えるか、または capabilities.json をダウンロードします。

    各入力フィールドの名前、種類、ツールヒント、および最大列数が定義されているセクション dataRoles および dataViewMappings を更新する必要があります。

    前と後

    詳細については、機能に関する記事を参照してください。

  3. dataset ではなく、PopulationNumber、および Tooltips を入力データフレームとしてサポートするように script.r を編集するか、または script.r をダウンロードします。

    スクリプト

    ヒント

    R スクリプト内の変更をたどるには、コメント ブロックを検索します。

    #RVIZ_IN_PBI_GUIDE:BEGIN: Added to enable visual fields
    ...
    #RVIZ_IN_PBI_GUIDE:END: Added to enable visual fields
    
    #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields 
    ...
    #RVIZ_IN_PBI_GUIDE:BEGIN: Removed to enable visual fields
    
  4. pbiviz package コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。

注意

ダウンロードについては、PBIXソースコードを参照してください。

ユーザー パラメーターを追加する

  1. UI からの内部パラメーターを含むビジュアル要素の色とサイズをユーザーが制御できるようにするための機能を追加します。

    右側のバージョンにオプションが追加された 2 つのバージョンのツール ウィンドウを表示するスクリーンショット。

  2. capabilities.json を編集して、objects セクションを更新します。 ここでは、各パラメーターの名前、ツールヒント、および種類を定義すると共に、パラメーターを複数のグループに分割することも決定します (この場合は 3 つのグループ)。

    capabilities.json をダウンロードします。詳細については、オブジェクトのプロパティに関するページを参照してください。

    capabilities

  3. src/settings.ts の編集を行って、こちらの settings.ts をミラーリングします。 このファイルは TypeScript で記述されています。

    ここでは、次に示すコードの 2 つのブロックが追加されていることがわかります。

    • プロパティ値を保持する新しいインターフェイスを宣言する
    • メンバー プロパティと既定値を定義する

    設定

  4. script.r の編集を行って、こちらの script.r をミラーリングします。 これにより、ユーザー パラメーターごとに if.exists 呼び出しを追加することで、UI のパラメーターのサポートが追加されます。

    ヒント

    R スクリプト内の変更をたどるには、次のコメントを検索します。

    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to enable user parameters
     ...
    #RVIZ_IN_PBI_GUIDE:END:Added to enable user parameters
    
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to enable user parameters 
     ...
    #RVIZ_IN_PBI_GUIDE:END:Removed to enable user parameters
    

    スクリプトの前と後

    パラメーターを UI に公開しないように決定することもできます。

  5. pbiviz package コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。

注意

ダウンロードについては、PBIXソースコードを参照してください。

ヒント

ここでは、複数の型 (ブール値、数値、文字列、および色) のパラメーターをすべて一度に追加しました。 シンプルなケースとして、単一パラメーターの追加方法については、こちらの例を参照してください。

ビジュアルを RHTML ベースのビジュアルに変換する

結果として得られるビジュアルは PNG ベースのものであるため、マウス ホバーに応答しない、拡大表示することができないなどの制限があります。そのため、これを HTML ベースのビジュアルに変換する必要があります。 R を利用した空の HTML ベースのビジュアル テンプレートを作成して、PNG ベースのプロジェクトからいくつかのスクリプトをコピーします。

  1. 次のコマンドを実行します。

    pbiviz new funnel-visual-HTML -t rhtml
    cd funnel-visual-HTML
    npm install 
    pbiviz package
    
  2. capabilities.json を開き、"scriptOutputType":"html" 行をメモします。

  3. dependencies.json を開き、一覧表示されている R パッケージの名前をメモします。

  4. script.r を開き、その構造をメモします。 それは、外部入力が使用されていないため、RStudio で開いて実行することができます。

    これにより out.html が作成され、保存されます。 自己完結型 (外部の依存関係なし) であるこのファイルでは、HTML ウィジェット内のグラフィックスが定義されます。

    重要

    htmlWidgets ユーザーを対象として、r_files フォルダーには、plotly オブジェクトまたは widget オブジェクトを自己コンテンツ HTML に変換するのに役立つ R ユーティリティが用意されています。

    R を利用したこのバージョンのビジュアルでは、(以前の種類のビジュアルとは異なって) source コマンドもサポートされており、自分のコードを読みやすくすることができます。

  5. capabilities.json を前の手順からの capabilities.json に置き換えるか、または capabilities.json をダウンロードします。

    必ず次のようにしてください。

    "scriptOutputType": "html"

  6. 最新バージョンの script.r をテンプレートからの script.r にマージするか、または script.r をダウンロードします。

    新しいスクリプトでは、plotly パッケージを使用して、ggplot オブジェクトが plotly オブジェクトに変換され、さらに htmlWidgets パッケージを使用してそれが HTML ファイルに保存されます。

    ユーティリティ関数の大部分は r_files/utils.r に移動され、generateNiceTooltips 関数は、plotly オブジェクトの外観用に追加されます。

    1

    2

    ヒント

    R スクリプト内の変更をたどるには、次のコメントを検索します。

    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based 
     ...
    #RVIZ_IN_PBI_GUIDE:BEGIN:Added to create HTML-based
    
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based  
    ...
    #RVIZ_IN_PBI_GUIDE:BEGIN:Removed to create HTML-based
    
  7. 最新バージョンの dependencies.json をテンプレートからの dependencies.json にマージして、新しい R パッケージ依存関係を含めるか、または dependencies.json をダウンロードします。

  8. src/settings.ts を前の手順と同じ方法で編集します。

  9. pbiviz package コマンドを使用してビジュアルを再パッケージ化してから、それを Power BI にインポートしてみてください。

注意

ダウンロードについては、PBIX とソースコードを参照してください。

追加の例を作成する

  1. 次のコマンドを実行して、空のプロジェクトを作成します。

    pbiviz new example -t rhtml
    cd example
    npm install 
    pbiviz package
    
  2. この ショーケースからコードを取得し、強調表示されている変更を行います。

    強調表示されている変更

  3. ご自分のテンプレートの script.r を置き換えて、pbiviz package を再度実行します。 これで、Power BI レポートにビジュアルが含まれるようになりました。

ヒントとコツ

  • pbiviz.json を編集することで、バージョン電子メール名前ライセンスの種類などの正しいメタデータを格納することを開発者にお勧めします。

    重要

    guid フィールドは、ビジュアルの一意の識別子です。 ビジュアルごとに新しいプロジェクトを作成する場合は、GUID もそれぞれ異なります。 それが同じになるのは、新しいビジュアルに古いプロジェクトをコピーして使用する場合のみとなりますが、これを行うべきではありません。

  • assets/icon.png を編集して、ビジュアル用の一意のアイコンを作成します。

  • ご利用の Power BI レポートと同じデータを使用して RStudio で R コードをデバッグするには、R スクリプトの先頭に以下を追加します (fileRda 変数を編集します)。

    #DEBUG in RStudio
    fileRda = "C:/Users/yourUserName/Temp/tempData.Rda"
    if(file.exists(dirname(fileRda)))
    {
       if(Sys.getenv("RSTUDIO")!="")
         load(file= fileRda)
       else
         save(list = ls(all.names = TRUE), file=fileRda)
    }
    

    これにより、Power BI レポートからの環境が保存され、RStudio に読み込まれます。

  • GitHub で入手できるコードを使用すれば、R を利用したビジュアルをゼロから開発する必要はありません。 テンプレートとして使用するビジュアルを選択し、そのコードを新しいプロジェクトにコピーすることができます。

    たとえば、スプライン カスタム ビジュアルを使用してみてください。

  • 各 R ビジュアルでは、その入力テーブルに unique 演算子が適用されます。 複数の同一の行が削除されるのを防ぐには、一意の ID を持つ追加の入力フィールドを追加し、R コードでそれを無視することを検討してください。

  • Power BI アカウントを持っている場合は、pbiviz package コマンドを使用して再パッケージ化するのではなく、Power BI サービスを使用してビジュアルを即座に開発してください。

次のビジュアルで使用するために、 HTML ウィジェット ギャラリーでビジュアルを探索します。 作業を簡単にするために、20 を超える対話型の HTML ビジュアを含むビジュアル プロジェクト リポジトリを作成し、その中から選択できるようにしました。

ヒント

html ウィジェットを切り替えるには、 [形式]>[設定]>[型] の順に使用します。 この PBIX ファイルを使用して試してみてください。

ビジュアルに対してサンプルを使用するには

  1. フォルダー全体をダウンロードします。
  2. script.rdependencies.json を編集して、ウィジェットを 1 つだけを保持します。
  3. capabilities.jsonsettings.ts を編集して、Type セレクターを削除します。
  4. visual.ts 内で、const updateHTMLHead: boolean = true;false に変更します (パフォーマンス向上のため)
  5. pbiviz.json 内のメタデータを変更します。最も重要なのは guid フィールドです。
  6. 再パッケージ化し、必要に応じて、ビジュアルのカスタマイズを続けます。

この記事の前半で説明した 6 つのウィジェットを表示するスクリーンショット。

スクリーンショットは、この記事の前半で説明した追加の 6 つのウィジェットを表示しています。

注意

このプロジェクトのすべてのウィジェットがサービスでサポートされているわけではありません。

詳細については、Power BI の円形カード視覚化の開発および R ビジュアルに関する追加の Power BI チュートリアルを参照してください。

Office ストア (ギャラリー) に対してビジュアルを開発して送信する方法を学習します。その他の例については、R スクリプト ショーケースを参照してください