R 使い方 組込みデータセット iris データフレーム・ベクトル・リスト

バイオインフォ道場、くまぞうです。

Rのデータ型について学びます。使うデータは、組込みデータセットの「iris」です。irisの構造を眺めたり要約統計量を求めることで、データフレーム・ベクトル型・リスト型について簡単に学びます。

スポンサーリンク



iris データセット

iris データセットは、FisherとAndersonによるアヤメの分類データです。3品種について、がく片(Sepal)と花弁(Petal)について長さと幅のデータを集めたものです。

Rを起動して、以下のヘルプコマンドでデータセットの説明を確認します。

R> help(iris)

データフレーム

データフレームとは、Excelの表に似たデータです。実際に統計解析を行うときに、Excelやcsvファイルを読み込むとデータフレームとして格納されます。列名(ラベル)による操作が可能です。各列毎のデータは、それぞれ、数値・文字・因子など異なる型でも構いません。

irisもデータフレームに格納されたデータセットです。

R> class(iris)
[1] "data.frame"

列の定義や格納されているデータを確認します。

R> str(iris)
'data.frame': 150 obs. of 5 variables:
$ Sepal.Length: num 5.1 4.9 4.7 4.6 5 5.4 4.6 5 4.4 4.9 ...
$ Sepal.Width : num 3.5 3 3.2 3.1 3.6 3.9 3.4 3.4 2.9 3.1 ...
$ Petal.Length: num 1.4 1.4 1.3 1.5 1.4 1.7 1.4 1.5 1.4 1.5 ...
$ Petal.Width : num 0.2 0.2 0.2 0.2 0.2 0.4 0.3 0.2 0.2 0.1 ...
$ Species : Factor w/ 3 levels "setosa","versicolor",..: 1 1 1 1 1 1 1 1 1 1 ...

データフレームは2次元構造をしています。列や行に、個別にアクセスしたい場合はデータフレーム[行,列]という指定を行います。列を指定してvectorデータを取得したい場合は、iris[,”Sepal.Length”]と指定します。または、iris$Sepal.Length。行を指定してlistデータを取得したい場合は、iris[1,]と指定します。

ベクトル

同一型のデータを順番に並べたデータです。irisでは各列のデータが相当します。

R> iris[,"Sepal.Length"]
[1] 5.1 4.9 4.7 4.6 5.0 5.4 4.6 5.0 4.4 4.9 5.4 4.8 4.8 4.3 5.8 5.7 5.4 5.1 ...

リスト

異なる型のデータをまとめたデータです。irisでは各行のデータが相当します。要素にリストを指定した入れ子構造を作ることが出来ます。

R> iris[1,]
  Sepal.Length Sepal.Width Petal.Length Petal.Width Species
1          5.1         3.5          1.4         0.2  setosa

データセットの特徴

データセットの次元数・行数・列数の確認

行数や列数は、dim・nrow・ncol関数で確認できます。

R> dim(iris)
[1] 150 5
R> nrow(iris)
[1] 150
R> ncol(iris)
[1] 5

データセットの要約統計量

summary関数を使うと、データオブジェクトの要約統計量を簡単に求めることができます。

R> summary(iris)
  Sepal.Length    Sepal.Width     Petal.Length    Petal.Width   
 Min.   :4.300   Min.   :2.000   Min.   :1.000   Min.   :0.100  
 1st Qu.:5.100   1st Qu.:2.800   1st Qu.:1.600   1st Qu.:0.300  
 Median :5.800   Median :3.000   Median :4.350   Median :1.300  
 Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  
 3rd Qu.:6.400   3rd Qu.:3.300   3rd Qu.:5.100   3rd Qu.:1.800  
 Max.   :7.900   Max.   :4.400   Max.   :6.900   Max.   :2.500  
       Species  
 setosa    :50  
 versicolor:50  
 virginica :50  

尚、Species毎に統計量を求めるには、by関数を用いると便利です。

R> by(iris, iris$Species, summary)

列毎のデータで計算する場合は、以下のように指定します。

R> summary(iris$Sepal.Length)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
  4.300   5.100   5.800   5.843   6.400   7.900
R> table(iris$Species)
    setosa versicolor  virginica 
        50         50         50 
スポンサーリンク