統計解析フリーソフト「R」で統計学に入門する30 【データフレームから部分抽出する3つの方法】

こんにちは、ミントです

前回は、Rでデータフレームを生成して、要素を取り出す操作をやりました

今回は、データフレームの中から、ほしい部分だけを抽出したり、新しいデータを付け加えることをやりたいと思います

データ分析をするときには、全部のデータでなく、データの一部分を取り出してそこだけ分析対象にしたい場合があります

たとえば、男女まざったアンケート結果のデータがあるときに、男だけや女だけのデータでそれぞれ分析したいこともよくあります

今回は、Rのデータフレームで、こういった抽出する操作をやってみましょう

今回使うデータは、前回のデータを使いたいと思います

名前性別血液型身長体重
Aくん男性17569
Bさん女性16251
Cさん女性14542
Dくん男性17065
Eくん男性AB18383

Rでデータフレームを生成

データフレームはこれを使いたいと思います

 

本記事の概要

Rのデータフレームから、部分抽出してみる

部分抽出(1) 変数名を直接指定する方法

性別( seibetsu )の値が、男である行だけを取り出してみます

Rでデータフレームから部分抽出する

このやり方は、data [ ◎,  △ ] の中で

  • ◎が data[[“seibetsu”]] == “男”
  • △が 空白

となっています。

ここで、◎ではイコールは1つ(=)でなく、イコールが2つ(==)です

== は、等しいかかどうかを調べる意味があります

◎では、「 data[[“seibetsu”]] 」 が  「 男 」と等しいかどうかを調べています

データフレームの中で、これが等しい部分を指定しています

 

部分抽出(2) subset ( ) 関数 をつかう

データフレームの部分抽出には、「 subset ( ) 関数 」が用意されています

subset ( データフレーム名,  変数名 = 値 ) の形でつかいます

Rのデータフレームの部分抽出subset

同じように抽出できていることがわかります

(1)よりもスッキリしてるので、こちらを好む人が多いようです

 

部分抽出(3) 変数ごとにデータフレームを分割する

データフレームを変数ごとに複数のデータフレームに分割する方法もあります

これは 「 split ( ) 関数 」をつかいます

split ( データフレーム名,  データフレーム名$変数名 ) の形でつかいます

これを使うと、たとえば性別が男と女で、データフレームを分割することができます

Rでデータフレームを部分抽出する

性別変数の 男と女 ごとにデータフレームが分割されていることがわかります

この分割したデータフレームは、以下のようにして使うことができます

まずオブジェクト(ここではd)に代入します

オブジェクトd の中身を str(d) で調べると、List of 2 とあります

2つのデータフレームがあることを示しています

d [1] ,  d[2] と指定すると、それぞれデータフレーム1、データフレーム2を取り出すことができます

Rでデータフレームを部分抽出split

というわけで、今回はデータフレームから部分抽出する方法を3つ紹介しました

 

 

 

 

Rには、「論理値」という考え方があります↓

 

こちら無料で読めます↓