Last updated: October 2009. Kajiyama                    [ 目次に戻る ]

カテゴリ化した変数で新しいデータフレームを作成する


  1. サンプル数が同じ数の 変数a,変数b,変数c,変数d をまとめてひとつのデータフレームにするには

    新しいデータフレーム名 <− data/frame(変数a,変数b,変数c,変数d)     と記述する.



  2. 使用する「iris」のデータ構造の確認

    (1)「irisデータ」のデータリスト

    ・「コンソール」 画面に,

    iris #  と記述すると,Rに組み込みこまれているFisherの研究で使われた「iris」データ 5変数X150サンプル が表示される.

    (2)「irisデータ」の基礎統計量

    「コンソール」 画面に,

    summary (iris) #  と記述すると,「irisデータの基礎統計量」が表示される.

    Min. 最小値, 1st Qu. 第1四分位, Median 中央値, Mean 平均値, 3rd Qu. 第3四分位, Max. 最大値.


      あやめの大きな3枚のはなびらは,「Sepal がく片」で,小さな3枚のはなびらが,「Petal 花びら」である.

    Sepal「がく片」の長さと幅・Petal「花びら」の長さと幅

    Species「あやめ3品種 [setosa・versicolor・virginica]」
    
    > summary (iris)
     Sepal.Length     Sepal.Width    Petal.Length    Petal.Width    Species
     Min.  :4.300   Min.  :2.000   Min.  :1.000   Min.  :0.100  setosa    :50
     1st Qu. :5.100   1st Qu. :2.800   1st Qu. :1.600   1st Qu. :0.300  versicolor:50
     Mean   :5.843   Mean   :3.057   Mean   :3.758   Mean   :1.199  virginica :50
     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
    



  3. 連続変数 「irisデータ」をカテゴリ化したデータ Sepal.Length,Sepal.Width,Petal.Length,Petal.Widthを作成 

    第1〜4変数は長さや幅の連続した数値である.この連続した数値を分割点で区切り区間化しカテゴリに変換する.

    1. 連続変数 「第1変数 Sepal.Length」をカテゴリ化したデータを作成 

      (1) 連続変数のカテゴリ化

      第1変数Sepal.Lengthは4.3〜7.9の値をとるので,これを1.0間隔で4区間に分割する.

      4≦データ値<5  5≦データ値<6  6≦データ値<7  7≦データ値<8

      x <- iris $ Sepal.Length #  と記述すると,irisデータの第1列の「Sepal.Length」がxに抜き出される.

      ・4〜8の間を5区間に分割しデータをカテゴリ化する.分類後のデータをデータフレーム Sepal.Length とする.

      Sepal.Length <- cut(x, breaks = c(4,5,6,7,8), labels= c("4-5","5-6","6-7","7-8"), right=FALSE, ordered_result=TRUE)

      #  と記述すると,連続した数値を区間ごとのカテゴリに変換する.分類したデータが Sepal.Length に保存される.

      right=FALSE は区間の下限の値は区間に含まれるが,上限の値は区間に含まれないことを示している.m≦データ値<n


    2. 連続変数 「第2変数 Sepal.Width」をカテゴリ化したデータを作成 

      第2変数 Sepal.Widthは2.0〜4.4の値をとるので,これを0.5間隔で5区間に分割する.

      2.0≦データ値<2.5  2.5≦データ値<3.0  3.0≦データ値<3.5  3.5≦データ値<4.0  4.0≦データ値<4.5

      y <- iris $ Sepal.Width #  と記述すると,irisデータの第2列の「Sepal.Width」が y に抜き出される.

      Sepal.Width <- cut(y, breaks = c(2.0,2.5,3.0,3.5,4.0,4.5), labels= c("2.0-2.5","2.5-3.0","3.0-3.5","3.5-4.0","4.0-4.5"), right=FALSE, ordered_result=TRUE)

      と記述すると,連続した数値を区間ごとのカテゴリに変換する.分類したデータが Sepal.Width に保存される.


    3. 連続変数 「第3変数 Petal.Length」をカテゴリ化したデータを作成 

      (1) 連続変数のカテゴリ化

      第3変数 Petal.Lengthは1.0〜6.9の値をとるので,これを2.0間隔で4区間に分割する.

      0.0≦データ値<2.0  2.0≦データ値<4.0  4.0≦データ値<6.0  6.0≦データ値<8.0

      z <- iris $ Petal.Length #  と記述すると,irisデータの第3列の「Petal.Length」が z に抜き出される.

      Petal.Length <- cut(z, breaks = c(0.0,2.0,4.0,6.0,8.0), labels= c("0.0-2.0","2.0-4.0","4.0-6.0","6.0-8.0"), right=FALSE, ordered_result=TRUE)

      #  と記述すると,連続した数値を区間ごとのカテゴリに変換する.分類したデータが Petal.Length に保存される.


    4. 連続変数 「第4変数 Petal.Width」をカテゴリ化したデータを作成 

      0.0≦データ値<1.0  1.0≦データ値<2.0  2.0≦データ値<3.0

      w <- iris $ Petal.Width #  と記述すると,irisデータの第4列の「Petal.Width」が w に抜き出される.

      Petal.Width <- cut(w, breaks = c(0.0,1.0,2.0,3.0), labels= c("0.0-1.0","1.0-2.0","2.0-3.0"), right=FALSE, ordered_result=TRUE)

      #  と記述すると,連続した数値を区間ごとのカテゴリに変換する.分類したデータが Petal.Width に保存される.


    5. カテゴリ変数 「第5変数 Species 」を抜き出してデータを作成 

      Species <- iris $ Species #  と記述すると,irisデータの第5列の「Species」が Species に抜き出される.


  4. データフレーム型のデータを作成 

    以上の手続きにより,150サンプルのデータフレーム「iris」の変数1〜4をカテゴリ化した.

    カテゴリデータの「Sepal.Length」, 「Sepal.Width」, 「Petal.Length」, 「Petal.Width」, 「Species」を合成し,データフレーム「あやめ」を新たに作成する・

    あやめ <- data.frame ( Sepal.Length, Sepal.Width, Petal.Length, Petal.Width, Species )

    #  と記述すると,「iris」データをカテゴリ化した「あやめ 」が作成される.

    fix(あやめ) #  と記述すると,表シートでデータフレーム「あやめの内容が確認できる.



     新しく作成した,データフレーム「あやめ 」


     元の,データフレーム「iris 」


    write.csv (あやめ, "あやめ_csv.csv") #  と記述し,エクセル.csv形式で外部ファイルとして保存する.

    ・エクセルを開くと文字列 5-6が5月6日に,4-5が4月5日に勝手に変換され表示されている.

     「5月6日」はエクセルのデータの内部で「2009/5/6」である. エクセルの置換で「2009/5/6」を「5.0-6.0」に変換する.

     ほかの文字化けした変数はエクセルで修正しておく.「エクセルが誤解しないカテゴリ名」を使用すること.

    ・"あやめ_csv.csv"ではA列にサンプル番号が変数として加わっているので,データの変化に注意する.エクセルでA列を削除しておく.



     エクセルでの表示


     修正後のエクセル表示


  5.  ダウンロードし,解凍して「R_ANALYSIS」フォルダに保存

     ・3品種混合のデータフレーム「あやめ」 [ ayame_csv.EXE ダウンロード ]

     ・setosa品種のデータフレーム「あやめ.setosa」 [ ayame_setosa_csv.EX ダウンロード ]

     ・versicolor品種のデータフレーム「あやめ.versicolor」 [ ayame_versicolor_csv.EXE ダウンロード ]

     ・virginica品種のデータフレーム「あやめ.virginica」 [ ayame_virginica_csv.EXE ダウンロード ]


[ 目次に戻る ]