こんにちは、ミントです
前回は、Rでデータフレームを生成して、要素を取り出す操作をやりました
今回は、データフレームの中から、ほしい部分だけを抽出したり、新しいデータを付け加えることをやりたいと思います
データ分析をするときには、全部のデータでなく、データの一部分を取り出してそこだけ分析対象にしたい場合があります
たとえば、男女まざったアンケート結果のデータがあるときに、男だけや女だけのデータでそれぞれ分析したいこともよくあります
今回は、Rのデータフレームで、こういった抽出する操作をやってみましょう
今回使うデータは、前回のデータを使いたいと思います
名前 | 性別 | 血液型 | 身長 | 体重 |
Aくん | 男性 | A | 175 | 69 |
Bさん | 女性 | B | 162 | 51 |
Cさん | 女性 | O | 145 | 42 |
Dくん | 男性 | A | 170 | 65 |
Eくん | 男性 | AB | 183 | 83 |
データフレームはこれを使いたいと思います
本記事の概要
Rのデータフレームから、部分抽出してみる
部分抽出(1) 変数名を直接指定する方法
性別( seibetsu )の値が、男である行だけを取り出してみます
このやり方は、data [ ◎, △ ] の中で
- ◎が data[[“seibetsu”]] == “男”
- △が 空白
となっています。
ここで、◎ではイコールは1つ(=)でなく、イコールが2つ(==)です
== は、等しいかかどうかを調べる意味があります
◎では、「 data[[“seibetsu”]] 」 が 「 男 」と等しいかどうかを調べています
データフレームの中で、これが等しい部分を指定しています
部分抽出(2) subset ( ) 関数 をつかう
データフレームの部分抽出には、「 subset ( ) 関数 」が用意されています
subset ( データフレーム名, 変数名 = 値 ) の形でつかいます
同じように抽出できていることがわかります
(1)よりもスッキリしてるので、こちらを好む人が多いようです
部分抽出(3) 変数ごとにデータフレームを分割する
データフレームを変数ごとに複数のデータフレームに分割する方法もあります
これは 「 split ( ) 関数 」をつかいます
split ( データフレーム名, データフレーム名$変数名 ) の形でつかいます
これを使うと、たとえば性別が男と女で、データフレームを分割することができます
性別変数の 男と女 ごとにデータフレームが分割されていることがわかります
この分割したデータフレームは、以下のようにして使うことができます
まずオブジェクト(ここではd)に代入します
オブジェクトd の中身を str(d) で調べると、List of 2 とあります
2つのデータフレームがあることを示しています
d [1] , d[2] と指定すると、それぞれデータフレーム1、データフレーム2を取り出すことができます
というわけで、今回はデータフレームから部分抽出する方法を3つ紹介しました
Rには、「論理値」という考え方があります↓
【論理値と大小比較を学ぶ】』
こちら無料で読めます↓