更新)前回はmutate関数を使って列の追加や修正を行いました。最後に以下のコメントで終了しました。mutate関数を使うと「FIMの合計点」とかだけでなく、年齢を「年代ごとに分類する」だったり、ある評価の「カットオフ値以上とそれ以下」に分けた列をExcelを使わずに作成することができます。(【2-2】Rのmutate関数を使って列の追加や修正を行うより)今回は連続変数を条件に応じて複数のカテゴリーに変換していきます。Rではいくつか方法があるのですが、今回はifelse関数、case_when関数、cut関数を紹介します。今回使う架空のデータは年齢、性別、病名が入っています。下のコードをまとめてスクリプトにコピペして実行してください。data.frame(年齢,性別,病名)head(data)今回は%>%やmutate関数を使って作業します。これらの使い方に不安がある場合は前回の記事をご参照ください1.ifelse関数をつかって分類する条件から2つに分類する場合ifelse関数は条件からTRUEとFALSEの2つに分けることができます。FALSEの場合)まず例としてdata_20という変数名に以下のように分類していきます。"female"))head(data_成人)条件から3つ以上分類する場合3つ以上分類するはifelse関数のFALSEにifelseを入れ込みます。FALSE)))このような形を「入れ子」と呼ぶそうです。繰り返せばいくらでも条件を増やすことができます。今度は「年代」という変数名で20歳ごとに区切ってみます。上のイメージをコードにするとこうなります。TRUE)の部分はfactorの順番を並べ替えています。20〜・・・」と100歳以上の場所がずれてしまいます。factorの並べ替えをしています。参照:【1-10】Rでよく使われる型について説明します。個人的に感じる「ifelse関数+入れ子」のメリットは「他の関数を覚えなくていい」で、デメリットは終わりの))))))))の数が多すぎて間違えやすく、エラーに悩まされることです(笑)2.case_when関数を使って分類する3つ以上の分類で入れ子構造対策で慣れるとわかりやすいのがcase_when関数かもしれません。上のイメージをコードにするとこうなります。)の数が少ないのがありがたいところです。上記の場合は数値でしたが次のような場合はどうでしょう?最初に行ったdata_20という変数名に以下のように分類していきます。Bは似ていますが、Bにあたる部分で==であれば1つしか入りません。%in%は1つでも複数でも大丈夫です。==に変えるとエラーが出ます。上記図は今回の記事だけでなく条件式を作る時に必要になる考え方です。case_when関数のメリットは入れ子構造にならないことで、デメリットとしては2つに分類するならifelseの方がコードが短くなります。Nishidaさんのツイートでcase_whenの解説を見つけました。ExploratoryはRをベースにしたデータ分析のソフトです。Rはプログラムを勉強してからでしか使えないところがありますが、ExploratoryはRコマンダーのようにプログラムを使わずにデータ分析ができます。すべての人にデータサイエンスを最新のデータサイエンスでは、さまざまな種類のデータを扱うことができ、機械学習や統計アルゴリズムを使用して、深い統計の知識がなくてもデータに隠れているパターンや傾向を見つけることができます。それはデータサイエンティストとプログラマーに限られています。Exploratoryは誰もが、プログラミングを必要とせずに、モダンで最先端のデータサイエンスのアルゴリズムに簡単にアクセスできるようにします。私たちは誰もが最新のテクノロジーにアクセスし、データを通じて世界をより深く理解していくべきだと強く信じています。~って部分がちょっと不安になるかもしれないけど、これはELSEといっしょ、つまりどの条件にも当てはまらなかったらということ。Nishida@KanAugust条件に、%in%を使って複数の値のリストのうち、どれかにマッチしたら、っていうのも使えるのが便利。12:09:25Exploratoryのサイトでもcase_when紹介がありました。運動器疾患と脳血管疾患以外をその他にしたければ以下のようになります。TRUEはここでは残り全部といった意味になります。"その他"勉強になりました!3.cut関数を使って分類する数値を分類するに限って言うとcut関数も使えます。cut関数はコードはスッキリしますが、少しクセがあり、おまじないが必要です。FALSEが必要になります。TRUEを加えないと端の値を読み込まず<NA>とデータなしとみなされてしまいます。これらをふまえると以下のコードになります。忘れないように注意が必要です。補足.mutate関数の組み合わせについてmutate関数を複数回行うにはいくつかの方法があります。(追記)2019/02/16更新すみません。mutate関数では2の方法は使えませんでした。2の方法は次で紹介するfilter関数で使うことができます。本来は,でつなぐと1つの行で済むのですが、初心者だと、()や,の数がうまくあわなかったりします。プログラミングの上級者からは意見があるかもしれませんが、プログラミング未経験・初心者はまず自分の覚えやすいものから始めていいと思っています。まとめ今回は条件によって分類する方法についてifelse関数、case_when関数、cut関数を紹介しました。それぞれに特徴がありますので、必要に応じて使い分けてください。%in%など)の紹介も行いました。演算子はデータを集計するときに必要になりますのでまた紹介していきたいと思います。