Exploratory コミュニティ

ある数値の範囲だったらAを返して、そうでなければBを返す方法

#1

例えば、ある数値データの列の値が4から9の間であれば、"A"を返し、それ以外の値は"B"を返す列を追加したい場合があります。

46

これを解決するためには、betweenという関数とifelseという関数を組み合わせることで簡単に解決できます。

それではやってみましょう!

列見出しメニューから、「計算を作成(Mutate)」を選びます。

53

次に、計算エディタに下記のコードを入力します。

ifelse(between(Value, 4, 9), "A", "B")

52

これで、Value列の値が4から9の間のものはAを返し、それ以外の値はBを返すことができます。

このbetween関数は、値が特定の範囲内にある場合にTRUEを返します。それ以外の場合はFALSEを返します。
1番目の引数は列名(今回の場合はValue)です。2番目と3番目の引数は値の範囲を決めるための最小値と最大値です。注意点として、値の範囲に4と9を設定した場合には、値の「4」と「9」に対してもTRUEが返されることです。

次に、ifelse関数は3つの引数をとります。1番目の引数がTRUEを返す場合には2番目の引数(今回の場合はA)を返し、それ以外の場合は3番目の引数(今回の場合はB)を返します。

このbetween関数は、数値データだけではなく、日付のデータにも使用できます。

下記の例は、Order Dateの値が2013年1月1日から2013年6月30日の間にある場合はAを返し、それ以外はBを返すようになっています。

ifelse(between(`Order Date`, as.Date("2013-01-01"),as.Date("2013-06-30")),"A","B")

54