2016年12月26日月曜日

データフレーム

> d
  sex  w   h
1   F 45 150
2   F 48 151
3   M 55 160
4   M 54 163
5   F 50 155
上の変数 d は、5人の人の、性別、体重、身長のデータです。

このような形のデータをデータフレームといい、R ではよく使われます。

データフレームは次のように作ります。スクリプトファイルに書いて、実行しました。
d=data.frame( sex=c("F","F","M","M","F") ,
              w=c(45,48,55,54,50),
              h=c(150,151,160,163,155)
  ) 

最初のデータフレームの出力例で、テータの横の並びを「行」といい、上から第1行、第2行、・・・、縦の並びを「列」といい、左から順に第1列、第2列、・・・といいます。

data.frameはデータフレームを作る命令です。
その中は各列ごとに、 列名 = ベクトル の繰り返しです。

データフレームから列を取り出すには、
> d$w
[1] 45 48 55 54 50
のように、データフレーム名$列名 と指定します。

行番号、列番号で指定することもできます。
1番目の人の2番目のデータ(体重)は次のように指定します。
> d[1,2]
[1] 45
行番号、列番号の順に指定していることに注意してください。この指定方法は大変柔軟性があります。
いくつか例を挙げるので検討してみてください。
①行番号のみ指定して、列番号を省略すると、列番号はすべて選ばれます。
> d[1,]
  sex  w   h
1   F 45 150

②行番号のみの指定ですが、ベクトルで指定しました。
> d[c(2,4),]
  sex  w   h
2   F 48 151
4   M 54 163

③列番号のみの指定です。1列目は性別で、文字列M,F で指定しました。
 このような場合、データフレーム内では文字列としてではなく、
 因子(factor)として扱われるので、Lebels: などという行が付加されます。
> d[,1]
[1] F F M M F
Levels: F M

④行番号を:(コロン)で指定してみました。2~4番の人の身長です。
> d[2:4,3]
[1] 151 160 163


データフレームの扱い例です。
> summary(d)
 sex         w              h        
 F:3   Min.   :45.0   Min.   :150.0  
 M:2   1st Qu.:48.0   1st Qu.:151.0  
       Median :50.0   Median :155.0  
       Mean   :50.4   Mean   :155.8  
       3rd Qu.:54.0   3rd Qu.:160.0  
       Max.   :55.0   Max.   :163.0  
> plot(d)

summary での出力、sex欄は F が3個、M が2個あることをいっています。 w と hの出力については、以前説明ものと同じです。

plot の出力は以下のようになります。


2データずつの組み合わせで、 散布図を作っています。
wとhの散布図は以前説明したものと同じですが、縦軸と横軸を取り替えた2つがあることを確認してください。
sex(因子) との組み合わせは、Fが1、Mが2 として散布図が描かれています。
因子は1、2、3、・・・と変換されます。特に指定がなければアルファベット順です。

0 件のコメント:

コメントを投稿