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

表計算シートをクリップボード経由で読み込みクロス表(分割表)を作成・保存する手順


  1. 表シートのデータを読み込み確認

    表シートは,

    ・表は空欄がないように作成する.データの内容に「NA」は使用しない.RではNot Availableの略がNA.「欠損値」の意味である.

    ・第1行は,必ず,「列の変数名」の欄にする.

    ・「変数名」の頭には数字を含まない.変数名に「 -, (, /, : 」の記号は含まない.日本語は可能.

    ・「変 数名」にはスペースを含まない.含むとRは2個の変数名が記述されているとみなし,エラーとなる.

    ・この表で試してみる.

    表1  架空の原表のデータフレーム「スタック形式」 ( 9個の観測値 )

    サンプル
    01
    02
    03
    04
    05
    06
    07
    08
    09
    変数01 変数02 変数03 変数04


    1. Rの「コンソール」画面に

    x <- read.table("clipboard", header=TRUE #  をコピーしペーストする.

    次に,表シートの緑の部分をマウスで選択しコピーし,クリップボードに保存する.そして「コンソール」画面に 残りのカッコ

    ) #  を,キーボードで打ちこみ,エンターキーを押し,Rを実行する.これでデータは読み込まれた.


    2. データフレームの確認.

    Rの「コンソール」画面に,

    str(x) #  と記述し,Rの内部データフレーム x のデータ構造を表示確認する.

    x #  と記述し,Rの内部のデータフレーム x を,表示し確認する.

    > x <- read.table("clipboard", header=TRUE )
    > str(x)
    'data.frame':   9 obs. of  4 variables:
     $ 変数01: Factor w/ 3 levels "あ","い","う": 1 2 3 1 2 3 1 2 3
     $ 変数02: Factor w/ 3 levels "山","川","里": 1 2 3 1 2 3 1 2 3
     $ 変数03: Factor w/ 4 levels "か","き","く",..: 1 4 3 2 1 4 3 2 1
     $ 変数04: Factor w/ 4 levels "花","月","鳥",..: 1 2 4 3 1 2 4 3 1
    
    > x
      変数01 変数02 変数03 変数04
    1     あ     山     か     花
    2     い     川     け     月
    3     う     里     く     風
    4     あ     山     き     鳥
    5     い     川     か     花
    6     う     里     け     月
    7     あ     山     く     風
    8     い     川     き     鳥
    9     う     里     か     花
    


    ・Rが理解した,変数名のリストと変数ごとのカテゴリの数とカテゴリ名が示される.

    ・変数名とカテゴリ名はRが理解した名前を使用する.


  2. 変数名を使ったクロス表の作成

    1. 変数名「変数01」と「変数02」のクロス表作成の手順

    ・クロス表を作成するには table関数を使用する.table( データフレーム名 $ 変数名m, データフレーム名 $ 変数名n )

    x2 <- table(x $ 変数02, x $ 変数01) #  と記述し,Rに変数[1]と変数[2]のクロス表 x2 を作成させる.

    x2 #  と記述し,クロス表 x2 を表示確認する.

    > x2 <- table(x $ 変数02, x $ 変数01)
    > x2
        
         あ い う
      山  3  0  0
      川  0  3  0
      里  0  0  3
    


    2. 合計欄付きクロス表の作成とエクセルで保存

    x3 <- addmargins(x2) #  と記述し,合計の計算をさせ,合計欄付きのクロス表 x3 を作成させる.

    colnames(x3) [ncol(x3)] <- "合計" #  列rowの「Sum」の文字を日本語の「合計」にする.

    rownames(x3) [nrow(x3)] <- "合計" #  行columnの「Sum」の文字を日本語の「合計」にする.

    write.csv (x3, "デモx3.csv") #  と記述し,外部の「作業ディレクトリ」に「 Excel.csvファイル」で保存する

    x3 #  と記述し,合計欄付きクロス表 x3 を表示確認する.


    > x3 <- addmargins(x2) 
    > colnames(x3) [ncol(x3)] <- "合計"
    > rownames(x3) [nrow(x3)] <- "合計"
    > write.csv (x3, "デモx3.csv") 
    > x3 
          
           あ い う 合計
      山    3  0  0    3
      川    0  3  0    3
      里    0  0  3    3
      合計  3  3  3    9
    

[ 目次に戻る ]