条件によって異なる値を返すためにはifelseという関数が使えます。これは、基本的にExcelのifelseと同じです。
ちなみに、条件を複数持ちたい場合は、case_whenという関数が使えます。こちらのノートに詳細があります。
今回は、ifelseという関数について紹介します。
ifelse関数には3つの引数があり、次のように記述されます。
ifelse(条件, "条件に当てはまるときの結果", "条件が当てはまらないときの結果")
1つ目の引数は条件です。ここには、例えば、Sales > 500といった条件を指定することができます。2つ目の引数は、最初の条件の結果が当たっていれば、つまりTRUEだったら、返したい値を指定します。最後の3つ目の引数は、先ほどの条件が当たっていなかったら、つまりFALSEだったら返したい値を指定します。
それでは、以下の3つの例を使ってifelse関数の使い方を具体的に見ていきましょう。
例えば、以下のような顧客ごとの売上データがあったとします。
そこで売上が10万円以上の顧客を「Loyal Customer」とラベル付けする新しい列を作りたいとします。
列ヘッダメニューから計算を作成(Mutate)を開きます。
ダイアログが表示されるので、下記のコードを計算エディタに入力して実行します。
ifelse(Sales >= 100000, "Loyal Customer", "Customer")
ここでは、売上が10万円以上のカスタマーは「Loyal Customer」、そうでない場合は「Customer」となるように設定しています。
バーチャートで確認してみると、Loyal Customerの割合は約23%いることがわかります。
先ほどのデータを見ると、Countryの列に欠損値があることがわかりました。
サマリビューで確認してみると、欠損値が537行あるようです。
これらの欠損値を、Japanに置き換えたいとします。
その際に、欠損値かどうかを判別する際に役立つ、is.na
という関数があります。 このis.na
は欠損値の場合は、TRUE、欠損値ではない場合はFALSEを返します。
is.na
とifelse
を組み合わせることにより、欠損値の場合に指定した値に置き換えることができます。
列ヘッダメニューから計算を作成(Mutate)を開きます。
下記のコードを計算エディタに入力します。
ifelse(is.na(Country), "Japan", Country)
また、今回は「既存列を上書き」を選んで、この「ifelse」関数の結果で「Country」列を上書きします。
「Country」列の値が欠損値かどうかをチェックし、TRUEの場合(欠損値の場合)は「Japan」を返し、そうでない場合はもとの「Country」列の値をそのまま返すようにしています。
サマリビューで確認してみると、欠損値がなくなり、Japanの数が増えていることがわかります。
例えば、下記のようにJapanやChina、Thailandといった国に対して「Asia」というラベルを付けたいとします。
この場合も同様にifelseを使うのですが、演算子の" %in% "を使うことで、複数の値を指定することができます。
下記のコードを、計算エディタに入力して実行します。
ifelse(Country %in% c("Japan", "China", "South Korea", "Thailand"), "Asia", "Others")
%in%という演算子は複数の値のうちどれかと等しければ、という条件を作る時に使えます。もし、その逆に複数の値のうちのどれとも等しくなければ、という条件を作りたい場合は%nin%という演算子が使えます。ninはNot inの略となっています。
%in%の後に、Japan、China、South Korea、Thailandという複数の国名のリストを指定しているのですが、ここで注意しなくてはいけないのはc()という関数です。R言語では全てが関数であある必要があるので、ただのリストを作りたい場合でも、このように「c」という関数を使う必要があります。この「c」というのはConcatenate(くっつける)の「c」です。
このifelse関数を使った計算はCountry列の値が、Japan、China、South Korea、Thailandのいずれかだったら、「Asia」というラベルをつける、それ以外は「Others」というラベルをつけることになります。
アジアという列を作成し、JapanやChina、Thailandといった国の時はAsiaを、それ以外の場合はOthersを列の値に入れることができました。
まだExploratoryをお持ちでない方は、この機会にぜひ試してみて下さい!
こちらのページよりサインアップ(無料)した後、Exploratoryをダウンロードし始めることができます!
データサイエンスやデータ分析の手法を1から体系的に学び、現場で使えるレベルのスキルを身につけていただくためのトレーニングを定期的に開催しています。
データを使ってビジネスの問題を解決していくための、質問や仮説の構築の仕方などを含めたデータリテラシーも基礎から身につけていただくものとなっております。
ぜひこの機会に参加をご検討ください!