こんにちは、ミントです
前回は、Rで「 論理積 」 や 「 論理和 」 をやりました
今回は、「 論理値の計算 」をやってみたいと思います
え!?論理値って 真 と 偽 だよね?
計算なんてできるの??
って思われるかもしれません
でも実は、論理値は計算ができちゃうんです
「 論理値の計算 」がなにに役立つかを説明しますね
たとえば、たくさんの条件があるときに、全部の条件を評価した時に、いくつ条件が真なのか知りたいとします
このときに論理値を計算すると、条件が成り立った数をカンタンに求められたりします
というわけで、今回はそこらへんをやりたいと思います
本記事の概要
Rで、TRUE と FALSE のたし算をしてみる
TRUE の和を計算してみる
TRUE 1つでは、TRUE と表示されますが、
TRUEが2つ、3つと足してみると、2 や 3 と数値になっています!
これが論理値の計算で、 「 TRUE 1つ 」 が 「 1 」 と扱われています
TRUE を2つ足すと2、 TRUEを3つ足すと3 となります
FALSE の和を計算してみる
FALSE 1つでは、FALSE と表示されますが、
FALSEを2つ足してみると、「 0 」になっています
これが論理値の計算で、 「 FALSE 1つ 」 が 「 0 」 と扱われています
TRUE と FALSE を足すと1、TRUE 2つと FALSE を足すと2、になっています
ひき算もできます
TRUE は1、FALSEは0 なので、
- 1つめは 1+1-1=1
- 2つめは、0+1-0+1=2
となっています
論理値の計算を便利につかってみる
たくさんのデータは、データ構造を使って扱うことをやりました
論理値の計算は、たくさんのデータを処理する時に威力を発揮します
ここでは、数値ベクトルを例にして、便利さを感じてもらいたいと思います
まず、6個の数値が入ったベクトルを定義しています
つぎに、 vec == 2 (ベクトルが2と等しい) と、論理式をRに与えています
するとRは、ベクトルの要素それぞれが2と等しいかを調べて出力してくれています
ここで、合計を求める新しい関数 sum ( ) 関数 を紹介します
sum ( オブジェクト名 ) として使い、オブジェクト内の合計を求めます
こんな感じで、手軽に合計を求めることができます
この関数を使うと、さっきの例をもっと分かりやすくできます
上の書き方だと、TRUE が何個あるかわかりずらいですよね
TRUE は数値の1、FALSEは0と扱われるので、条件を満たすTRUEの数は sum ( ) 関数をつかって カンタンに求められます
今回は、vec == 2 という条件をみたすのは1個というわけです
他の例もみてみましょう
sum ( vec > 0 ) では、vecの要素の中に、ゼロより大きい値が何個あるかを調べています。4個ということがわかりました
sum ( vec > 0 ) / length ( vec ) * 100 では、ゼロより大きい要素数を、全体の要素数で割って100をかけてパーセントになおしています。length ( ) 関数は、ベクトルの要素数を求める関数でした。すると67%がゼロより大きい値ということがわかりました
こういった操作は、データ数が今回の6個でも、100個でも1億個でも同じです。
大規模なデータの中に調べたい条件を満たすものが何個あるか、たった数行で調べることができてしまうんです!
すごくないですか!?
こんな感じで、論理値の計算を用いると、さまざまな条件を使うことでデータの中の様子を知ることができるんです
データ分析や統計解析では、まず手元のデータがどのような性質をもっているか、本格的な分析の前に、おおまかに調べることをやります(探索的データ解析といったりします)。こういったときにも、論理値の計算が有効な方法として使えることがわかってもらえると思います
というわけで、今回は「 論理値の計算 」 をおこないました
こちら無料で読めます↓