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
[amazonjs asin=”4320057082″ locale=”JP” title=”Rによるバイオインフォマティクスデータ解析 第2版 -Bioconductorを用いたゲノムスケールのデータマイニング-”]