R: データフレームの作成

2018/09/03 Last update

 

このページは R: データフレームの取り扱い @本家UBサイト に恒久的に移転しました。このページもネット上に残っていますが、最新の情報はリンク先を参照して下さい。

 

R では,取り扱う数値はデータフレームというものの中に格納されていると考える。

 


  1. 手打ちで作成する
    1. 1次元のデータ
    2. 2次元のデータ(データフレーム)
  2. エクセルからコピー & ペーストで作成する
  3. csv ファイルを読み込む


手打ちで作成する

2 次元で表されるベクトルなどのデータを,R ではデータフレーム data frame という。外見は行列と同じであるが,各行,各列が必ずラベルをもち,ラベルによる操作が可能である点が普通の行列と異なる(1)。

  Blood type Body weight
A 65
2 A 59
3 B 45

data frame は,たとえば左の表のようなデータから作成することができる。

 

data frame では,1行が1つのサンプルとして認識される(1)。また,左の表で Blood type は A, B, O, AB が要素になり得る名義尺度であり,Body weight は比率尺度であるが,これはOKである。


 

手打ちでこの表のデータフレームを B というワークスペース内に作成するときは,Blood_type と Body_weight をそれぞれ1次元のデータとして作り,それを結合する。

 

> B1=c("A","A","B")

> B2=c(65,59,45)

> B=data.frame(Blood_type=B1,Body_weight=B2)
 

とする。一発で作りたいときは,

 

> B=data.frame(Blood_type=c("A","A","B"), Body_weight=c(65,59,45))

 

である。うまくデータフレームが作れていれば,

 

> B

 

で上の表が表示されるはずである。なお,> summary(B) で体重の平均値など,このデータフレームの簡単な解析結果もみることができる。

 

注意点

 

  • Blood と type の間にスペースが入るとエラーになる。コマンド内ではスペースは原則として避ける。
  • ""がなくてもエラーになる。
  • データの名前 B にハイフンが入るとエラーになるかもしれない。

エクセルからコピー & ペーストで作成する

Mac

Mac では,データファイルにしたい領域をラベルも含めてコピーした後に,

 

> C=read.table(pipe("pbpaste"))

 

とすればよい。または,1行目をヘッダーにするというオプションを加えて

 

> C=read.table(pipe("pbpaste"),header=TRUE)

 
とする方法もある。
 

注意点

 

  • Warning message: In read.table(pipe("pbpaste")) : incomplete final line found by readTableHeader on 'pbpaste' というメッセージが現れた場合,一番下に一行空白行をクリップボードにコピーするようにすると,このメッセージが出なくなる。原因はよくわからない。
  • V1, V2 というデータラベルが勝手につけられてしまう。

Windows

Windows R version 3.1.2 では,Error in read.table(pipe("pbpaste")) : no lines available in input というエラーが出てしまう。


csv ファイルを読み込む

Excel を .csv で別名保存し,> A=read.csv('filename') で読み込むことができる(3)。 Windows R 3.1.2 で有効なことを確認(4-5-2015)。 filename には .csv を含める必要がある。


  • 同じディレクトリに csv ファイルがない場合は,パスを指定しなければならない。
  • 現在のディレクトリは > getwd() で調べることができる。

References

  1. R-Tips 39. データフレーム事始. Link.
  2. エクセルからデータをカット&ペースト http://aoki2.si.gunma-u.ac.jp/R/excel.html
  3. Excel のデータを読み込む. Web.