Oops! It appears that you have disabled your Javascript. In order for you to see this page as it is meant to appear, we ask that you please re-enable your Javascript!
スポンサーリンク

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

スポンサーリンク
スポンサーリンク
スポンサーリンク

こんにちは、ミントです

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

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

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

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

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

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

名前 性別 血液型 身長 体重
Aくん 男性 175 69
Bさん 女性 162 51
Cさん 女性 145 42
Dくん 男性 170 65
Eくん 男性 AB 183 83

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には、「論理値」という考え方があります↓

タイトルとURLをコピーしました