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

表計算シートをクリップボード経由で読み込み条件式を用い新しい変数を作成・保存する手順 --その1


  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. 既存の変数を加工して新たな変数を作成しエクセルファイルで保存 方法A

    目的: 「変数01」が"あ",「変数02」が"山"のサンプルを"○",それ以外を"×"とするような「変数05」を作成する.

    x2 <- data.frame ( x ) #  読み込んだデータフレームxがなくならないように新たなデータフレームx2を作成する.

    x2 <- transform ( x2, 変数05 = "A" ) #  データフレームx2に,「変数05」を追加する.中身は仮データとして"A".

    x2$変数05 <- (x2$変数01 == "あ" & x2$変数02 == "山" )

    #  「変数01」が "あ"で,かつ「変数02」が"山"であるサンプルを「変数05」にする.

    str(x2) #  データ構造を確認すると,条件に合ったサンプルは"TRUE",そうでなければ"FALSE"である.

    x2$変数05 <- factor (x2$変数05, levels=c( "TRUE", "FALSE" ), labels=c( "○","×" ) )

    #  "TRUE"を"○"に"FALSE"を"×"に置き換える.対応する順序に注意する.

    str(x2) #  データ構造を確認すると,条件に合ったサンプルは"○",そうでなければ"×"に変換されている.

    x2 #  と記述しデータフレームx2を確認する.


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


    > x2 <- data.frame ( x ) 
    > x2 <- transform ( x2, 変数05 = "A" ) #  変数05を追加する
    > x2$変数05 <- (x2$変数01 == "あ" & x2$変数02 == "山" ) 
    > str(x2)
    'data.frame':   9 obs. of  5 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
     $ 変数05: logi  TRUE FALSE FALSE TRUE FALSE FALSE ...
    
    > x2$変数05 <- factor (x2$変数05, levels=c( "TRUE", "FALSE" ), labels=c( "○","×" ) ) 
    > str(x2) 
    'data.frame':   9 obs. of  5 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
     $ 変数05: Factor w/ 2 levels "○","×": 1 2 2 1 2 2 1 2 2
    
    > x2 
      変数01 変数02 変数03 変数04 変数05
    1     あ     山     か     花     ○
    2     い     川     け     月     ×
    3     う     里     く     風     ×
    4     あ     山     き     鳥     ○
    5     い     川     か     花     ×
    6     う     里     け     月     ×
    7     あ     山     く     風     ○
    8     い     川     き     鳥     ×
    9     う     里     か     花     ×
    
    > write.csv (x2, "デモx2.csv") 
    


  3. 既存の変数を加工して新たな変数を作成しエクセルファイルで保存 方法B

    目的:「変数01」「変数02」を次の条件で分類し新たな「変数05」を作成する.

     「変数01」が"あ",「変数02」が"山"のサンプルを"○".

     「変数01」が"い",「変数02」が"川"のサンプルを"△".

     「変数01」が"う",「変数02」が"里"のサンプルを"×"とする.



    x3<- data.frame ( x ) #  読み込んだデータフレームxがなくならないように新たなデータフレームx3を作成する.

    #  次に,条件式を用いデータを抽出する.

    x41 <- subset( x3, x3$変数01 == "あ" & x3$変数02 == "山" ) #  「変数01」が "あ"で,かつ「変数02」が"山"

    x42 <- subset( x3, x3$変数01 == "い" & x3$変数02 == "川" ) #  「変数01」が "い"で,かつ「変数02」が"川"

    x43 <- subset( x3, x3$変数01 == "う" & x3$変数02 == "里" ) #  「変数01」が "う"で,かつ「変数02」が"里"

    #  次に, 新たに「変数05」を追加し,そのデータを「○△×」記号に変える.

    x41 <- transform ( x41, 変数05 = "○" )

    x42 <- transform ( x42, 変数05 = "△" )

    x43 <- transform ( x43, 変数05 = "×" )

    #  次に, x41〜x43のデータフレームを統合しデータフレームx5を作成する.

    x5 <- merge ( x41, x42, all=TRUE )

    x5 <- merge ( x5, x43, all=TRUE )

    #  次に, x51のデータフレーム構造と内容を確認し,エクセルファイルで保存する.

    str( x5 )

    x5

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


    サンプルの並び順はもとのデータフレーム x と異なるが,「変数05」 以外の内容は同じである.

    前もってサンプルの順番も変数に含めておきこの数字で並べ替えをする.



    > x3 <- data.frame ( x ) 
    > x41 <- subset( x3, x3$変数01 == "あ" & x3$変数02 == "山" ) 
    > x42 <- subset( x3, x3$変数01 == "い" & x3$変数02 == "川" ) 
    > x43 <- subset( x3, x3$変数01 == "う" & x3$変数02 == "里" ) 
    > x41 <- transform ( x41, 変数05 = "○" ) 
    > x42 <- transform ( x42, 変数05 = "△" ) 
    > x43 <- transform ( x43, 変数05 = "×" ) 
    > x5 <- merge ( x41, x42, all=TRUE ) 
    > x5 <- merge ( x5, x43, all=TRUE ) 
    > str( x5 )
    'data.frame':   9 obs. of  5 variables:
     $ 変数01: Factor w/ 3 levels "あ","い","う": 1 1 1 2 2 2 3 3 3
     $ 変数02: Factor w/ 3 levels "山","川","里": 1 1 1 2 2 2 3 3 3
     $ 変数03: Factor w/ 4 levels "か","き","く",..: 1 2 3 1 2 4 1 3 4
     $ 変数04: Factor w/ 4 levels "花","月","鳥",..: 1 3 4 1 3 2 1 4 2
     $ 変数05: Factor w/ 3 levels "○","△","×": 1 1 1 2 2 2 3 3 3
    
    > x5 
      変数01 変数02 変数03 変数04 変数05
    1     あ     山     か     花     ○
    2     あ     山     き     鳥     ○
    3     あ     山     く     風     ○
    4     い     川     か     花     △
    5     い     川     き     鳥     △
    6     い     川     け     月     △
    7     う     里     か     花     ×
    8     う     里     く     風     ×
    9     う     里     け     月     ×
    
    > write.csv (x5, "デモx5.csv") 
    

[ 目次に戻る ]