条件によって異なる値に置き換えたい (UI)

こちらはExploratoryデスクトップ v6.2から追加された「条件を設定して置換」のUIでの使い方の紹介になります。

計算を作成(Mutate)で使用できるcase_whenの使い方については、下記のノートをご覧ください。

  • case_when - 条件によって異なる値を返すための方法 - リンク

まず初めに、条件を設定して置換の一般的な使用方法を2つ紹介します。

サンプルデータとして、ウェブサイトのアクセスデータを使用します。

このデータは、1行が1ユーザーとなっており、列にはアクセス回数を表す、Countという列があります。

ユーザーのアクセス回数の多さによって、ラベルづけしたい。

まず初めに、ユーザーのアクセス回数の多さによって、ラベルづけしていきたいとします。

下記のアクセス回数(Count)の条件で、ラベルをつけていきたいです。

列ヘッダメニューから値を置き換えるを選び、条件を指定を選択します。

条件を設定して置換のダイアログが表示されました。

条件を作成していくため、選択項目をクリックします。

Countが100以上という条件を作りたいため、列にはCountを選び、演算子に以上を選択します。値には100を入力します。

Countが100以上という条件が作成されました。

条件にマッチした時の値を指定するため、新しい値をクリックします。

新しい値に文字列を指定したい場合、文字列をダブルクォート( " )で囲む必要があります。

そのため、“Heavy User”と入力します。

Countが100以上の時に”Heavy User”の値を返す条件が設定されました。

次に、Countが50以上の時に”Middle User”の値を返す条件を設定したいです。そのため、+(プラス)ボタンをクリックして条件を追加します。

新しく条件と新しい値を指定する項目が追加されました。

条件の新規追加をクリックして、Countが100以上という条件を作成していきます。列にはCountを選び、演算子に以上を選択します。値に50を入力します。

Countが50以上という条件が作成されました。

次に、新しい値をクリックし、“Middle User”と入力してOKボタンをクリックします。

Countが50以上の時に”Middle User”の値を返す条件が設定されました。

最後に、指定した条件にマッチしていない(Countが50より下)の人たちに、 “Light User”という値を返したいです。

それ以外の場合の新しい値をクリックします。

新しい値に “Light User”と入力してOKボタンをクリックします。

全ての条件と新しい値を指定することができました。

新しく列を作成にチェックをして任意の列名を入力します。

アクセス回数(Count)をもとに、ユーザーにラベルをつけることができました。

サマリ・ビューで確認してみると、ヘビーユーザーは199人、ミドルユーザーは193人いることがわかります。

アクセス回数が1000以上の場合、1000だったことにしたい。

Countの列を見てみると、アクセス回数が異常な値がいくつかあるようです。

そこで、アクセス回数が1000以上の場合、1000だったことにしたいとします。

下記の例では、useridがA101のアクセス回数は1200、A102のアクセス回数は3000のため、どちらのアクセス数も1000に置き換えたいです。

列ヘッダメニューから値を置き換えるを選び、条件を指定を選択します。

条件を設定して置換のダイアログが表示されました。

条件の新規追加をクリックして、Countが1000以上という条件を作成していきます。列にはCountを選び、演算子に以上を選択します。値には1000を入力します。

Countが1000以上という条件が作成されました。

次に、新しい値をクリックし、1000と入力してOKボタンをクリックします。

ちなみに、数値の場合は、ダブルクォートで囲む必要はありません!

Countが1000以上の時に数値の1000を返す条件が設定されました。

指定した条件にマッチしていない(Countが1000より下)の人たちは、列の値をそのまま返したいです。

それ以外の場合の新しい値をクリックします。

新しい値にCount(列名)を入力します。

全ての条件と新しい値を指定することができました。

新しく列を作成にチェックをして任意の列名を入力します。

実行すると、アクセス回数(Count)が1000以上の人たちの値を1000に置き換えることができました。

サマリ・ビューで確認してみても、アクセス回数の最大値が1000になっていることが確認できます。

複数の条件によって異なる値に置き換えたい

先ほどまでは、一つの条件にマッチした時に値を置き換えていました。

例えば、Countが100以上の時に"Heavy User"のラベルをつけるといったことをしていたわけです。

しかし、複数の条件にマッチさせたいこともあります。

例えば、Countが100以上で且つosがmacosxといった条件を指定したい時があります。

下記の例では、useridがA103とA104はアクセス回数が100以上で、osもmacosxのため条件にマッチしていることになります。

それとも、countが100以上またはosがmacosxといった条件にしたいこともあるでしょう。

この場合は、どちらかの条件にマッチしていれば良いということになります。

下記の例では、useridがA101〜A104はアクセス回数が100以上、またはosがmacosxのどちらかにマッチしていることになります。

残念ながらA105だけが、Countが100以上またはosがmacosxという条件にマッチしていないようです。

A and Bの場合は & を、A or Bの場合は縦バー ( | ) を使うことで複数の条件を指定していくことができます。

今回は、アクセス回数が100以上且つosがmacのユーザーにラベルを付けたいとします。

列ヘッダメニューから値を置き換えるを選び、条件を指定を選択します。

条件を設定して置換のダイアログが表示されました。

条件式を入力してみるも、2つの条件を指定することができません。

そこで、カスタムという機能を使うと、自分で条件式を入力して作っていくことができます。

カスタムに下記の条件式を入力してOKボタンをクリックします。

Count >= 100 & os == "macosx"

Countが100以上で且つosがmacosxという条件を指定することができました。

新しい値に”mac Heavy User”と入力します。

Countが100以上で且つosがmacosxの時に”mac Heavy User”の値を返す条件が設定されました。

今回は、それ以外に返す値には”User”を入力します。

全ての条件と新しい値を指定することができました。

新しく列を作成にチェックをして任意の列名を入力します。

アクセス回数(Count)が100以上で且つosがmacosxの人にラベルをつけることができました。

サマリ・ビューで確認してみると、macのヘビーユーザーは107人いるようです。

今回は以上になります!

Exploratoryでは、他にもデータラングリング(加工)に関するノートがありますので、ぜひ有効活用してみて下さい。

チュートリアルをみる


自分で試してみる

まだExploratoryをお持ちでない方は、この機会にぜひ試してみて下さい!

こちらのページよりサインアップ(無料)した後、Exploratoryをダウンロードし始めることができます!

サインアップする


データサイエンスを学ぶ

データサイエンスやデータ分析の手法を1から体系的に学び、現場で使えるレベルのスキルを身につけていただくためのトレーニングを定期的に開催しています。

データを使ってビジネスの問題を解決していくための、質問や仮説の構築の仕方などを含めたデータリテラシーも基礎から身につけていただくものとなっております。

ぜひこの機会に参加をご検討ください!

詳細を見る