データをファイルから読み取る

実際には,データはファイルに保存してあることがほとんどです。 したがって,最初に,ファイルからデータを読み込み,それを変数に保存する必要があります。

多くの場合,実験データはExcel形式のファイルとして保存してあるはずです。 Rには,Excelファイルを直接読み込む方法が用意されていますが,エラーが生じる可能性もあります。 ここでは,エラーが起きにくい安全な方法を紹介します。

ファイルの準備

Rでは,テキスト形式のファイルを安全に読むことができます。 テキスト形式とは,Windowsでは「メモ帳」,Mac OS Xでは「テキストエディット」,Linuxではviやemacsで編集できる単純な形式のことです。 最初に行うことは,データをテキスト形式ファイルとして保存することです。

テキスト形式には,データの区切り文字によって,いくつかの種類があります。

Rでは,上記のすべてを読み込むことができます。 Excelでは,ファイルを保存する際に保存形式を指定すれば,上記のいずれかの形式で保存することができます。 その際,ファイル名は,好きな名前にしてもかまいません(日本語を含めても問題ありません)。

また,ファイルの1行目について:

どちらの形式にも対応しています。

このページでは,説明のため,3種類の区切り方式(カンマ区切り,スペース区切り,タブ区切り)×2種類のヘッダ(ヘッダあり,なし)のサンプルファイルを用意しました。 各ファイルには,4処置について,それぞれ6個分のデータを保存してあります。 なお,このデータは,スネデカーとコクラン 著(津村・奥野・畑村 共訳)統計的方法 第6版の247ページから引用したものです。

ヘッダあり ヘッダなし
カンマ区切り file_csv_head.txt file_csv.txt
スペース区切り file_spc_head.txt file_spc.txt
タブ区切り file_tab_head.txt file_tab.txt

作業フォルダの移動

Rでファイルを読み込む前に,作業フォルダ(作業ディレクトリ)を変更しなければなりません。 作業フォルダとは,Rがファイルを読み書きする際に利用するフォルダのことです。 これを設定しなければ,Rはファイルの読み込みに失敗します。 詳しくは,R-Source 06. 作業ディレクトリの変更を参照し,ファイルを保存した場所に変更しておいてください。

ファイルの読み込み

用意したファイルには,データが表のように格納されています。 Rでは,このデータを,表のまま読み取ることができます。 そのためには,read.table() 関数を使用します。 基本的な使い方は,以下のようになります。

> x<-read.table("filename.txt")

上記の "filename.txt" の部分は,自分で保存したファイル名を入力します。 その際,忘れずにクオーテーションマークでくくってください。

区切り文字を変えたり,ヘッダの有無を指定するには,読み込み時のオプションを指定する必要があります。 上の例のように,何もオプションを指定しない場合には「スペース区切り」「ヘッダなし」として読み込みます。 オプションの使い方を以下に示します(TはTrue,FはFalseという意味です)。

> x<-read.table("filename.txt")             # スペース区切り,ヘッダなし
> x<-read.table("filename.txt",header=F)    # スペース区切り,ヘッダなし(別の書き方)
> x<-read.table("filename.txt",header=T)    # スペース区切り,ヘッダあり
> x<-read.table("filename.txt",sep=",")     # カンマ区切り,ヘッダなし
> x<-read.table("filename.txt",sep="\t")    # タブ区切り,ヘッダなし

> x<-read.table("filename.txt",sep="\t",header=T)  # タブ区切り,ヘッダあり
> x<-read.table("filename.txt",sep=",",header=T)   # カンマ区切り,ヘッダあり

エラー表示が何も出なければ,正常に読み込めたことを意味します。 読み込みが成功すると,変数 x に,データが表のまま保存されます。 正しく読み込めたかどうかを確認してみます。 ヘッダ付きか無しかで,表示が変わることに注意してください。

# ヘッダ付きの場合
> x
  FAT1 FAT2 FAT3 FAT4
1   64   78   75   55
2   72   91   93   66
3   68   97   78   49
4   77   82   71   64
5   56   85   63   70
6   95   77   76   68

# ヘッダなしの場合
> x
  V1 V2 V3 V4
1 64 78 75 55
2 72 91 93 66
3 68 97 78 49
4 77 82 71 64
5 56 85 63 70
6 95 77 76 68

ヘッダをつけなかった場合,仮の項目名として,V1,V2…が自動的に割り当てられます。

データフレームの操作

このような表形式のデータ構造を,Rでは「データフレーム」と名付けています。 データフレームの各要素を取り出すには,以下のように入力してください。

> x[1,3]       # 1行3列目の要素にアクセス
[1] 75
> x[1,3]+10    # この要素は通常の変数のように扱うことができる
[1] 85
> x$FAT2       # FAT2というヘッダを持つ列をベクトルとしてアクセスする
[1] 64 72 68 77 56 95
> x[2]         # 2列目をデータフレームとして抜き出す
  FAT2
1   78
2   91
3   97
4   82
5   85
6   77
> x["FAT2"]    # こうしても同じ
  FAT2
1   78
2   91
3   97
4   82
5   85
6   77

基礎統計量は,各列ごとに算出できます。

> summary(x)
      FAT1            FAT2           FAT3           FAT4      
 Min.   :56.00   Min.   :77.0   Min.   :63.0   Min.   :49.00  
 1st Qu.:65.00   1st Qu.:79.0   1st Qu.:72.0   1st Qu.:57.25  
 Median :70.00   Median :83.5   Median :75.5   Median :65.00  
 Mean   :72.00   Mean   :85.0   Mean   :76.0   Mean   :62.00  
 3rd Qu.:75.75   3rd Qu.:89.5   3rd Qu.:77.5   3rd Qu.:67.50  
 Max.   :95.00   Max.   :97.0   Max.   :93.0   Max.   :70.00  

> mean(x)
FAT1 FAT2 FAT3 FAT4 
  72   85   76   62 

> sd(x)
     FAT1      FAT2      FAT3      FAT4 
13.341664  7.771744  9.879271  8.221922 

Rには,データフレームを操作するための手段がいくつも用意されています。 たとえば,ある範囲をとるデータだけを抜き出したり,特定の条件に当てはまる行だけを抽出したりできます。 このような高度な操作は,別のページにて,改めて紹介する予定です。

TOP
メニュー