パラメーターを利用して欠損値を含む列に対してフィルタを実施するときにExploratory内での結果が一致しない問題の解決方法

Exploratoryのv10.7以前のバージョンにおいて、パラメーターを利用して欠損値を含む列に対してフィルタを実施する際、以下の問題を確認しています。

  • Exploratoryデスクトップのテーブルビューで表示される結果(データ)と、Exploratoryデスクトップのチャートビューやレポートで表示される結果(データ)が一致しない
  • Exploratoryデスクトップ上のコンテンツと、サーバー上のコンテンツの結果(データ)が一致しない

結果の違いの原因

コンテンツ間で結果が異なる理由は、テーブルビューや、サーバーにパブリッシュしたコンテンツでは、欠損値を含む列に対してパラメーターを使ってフィルタを実行した際、欠損値が除外されるのに対して、Exploratoryデスクトップ上のチャートやレポートでは、欠損値が除外されないことによります。

そこで、こちらのノートでは、それぞれの結果を統一する方法を紹介します。

欠損値を除外しないようにする

こちらは、Exploratoryデスクトップ上のチャートやレポートの結果にテーブルビューやサーバーにパブリッシュしたレポートの結果に一致させる方法です。

Exploratoryデスクトップ上のチャートやレポートでフィルタのパラメーターを実行した場合、欠損値は除外されないため、その処理を実際のフィルタの処理に追加をする必要があります。

具体的には、列ヘッダメニューから「フィルタ」の「カスタム」を選択します。

例えば、「職種」という列名に対して、shokushuというパラメーターを使って、「どれかに等しい」というフィルタを設定する場合、以下のように記述することになります。

職種 %in_or_all% @{shokushu} | is.na(職種)

このとき、%in_or_all%は、「どれかに等しい」という演算子の処理に加えて、パラメーターの値を選択しなかったときに全ての値を返す演算子となり、exploratory_env$…の部分は、パラメーターを指定するコードとなります。

なお、単一選択のパラメーターを使って1つの値を選択するか、パラメーターの値を選択しなかったときに全ての値を返す場合は、%equal_or_all%という演算子を使って以下のように記述することになります。

<列名> %equal_or_all% @{パラメーター名} | is.na(<列名>)

これにより、欠損値は残しつつも指定したパラメーターの値の一致するデータを残せるわけです。

欠損値を除外する

こちらは、Exploratoryデスクトップ上のチャートやレポートでフィルタのパラメーターを実行したときの結果に、テーブルビューやサーバーにパブリッシュしたレポートの結果を、合わせる方法です。

Exploratoryデスクトップ上のチャートやレポート上でフィルタのパラメーターを実行した場合、欠損値は除外されないため、その処理を実際のフィルタの処理に追加をする必要があります。

そこで、チャートビューに移動し、各チャートのチャートレベル・フィルタで欠損値を除くフィルタを追加することで、デスクトップ上のチャートやレポート上の結果から欠損値を除外することが可能となります。

Export Chart Image
Output Format
PNG SVG
Background
Set background transparent
Size
Width (Pixel)
Height (Pixel)
Pixel Ratio