Microsoft EXCEL のデータ(もしくは Open Office の calc のデータ)を R へ読み込む際のテクニックをいくつか紹介する.
目的は関数 read.csv() で読み込める形式にすることである(前節の data05.txt の状態).まず,EXCEL ファイルを開き,メニューの [ファイル] の [開く] から,[名前をつけて保存] を選択する.

保存する名前をつけた後,次に [ファイルの種類] から [CSV カンマ区切り] (Open Office の calc ならば [テキスト CSV] )を選択して保存する.Windows 版 R の場合は以下のようになる.

Mac OS X 版 R の場合は以下のようになる.
|
【別名で保存】 |
【CSV 形式で保存】 |
元の EXCEL ファイルに列名がある場合は単に read.csv("ファイル名") とすればよい.列名が無い場合は,関数 read.csv() の引数 header に F を指定し,引数 col.names に列名を指定すれば良い.
|
|
まず,EXCEL のセルをコピーする.Windows 版の場合は,列名をコピーしてもしなくてもよいが,Mac OS X 版の場合は列名をコピーしてはいけない(データのみコピー).
|
【Windows 版】 |
【Mac OS X 版】 |
【Windows 版の場合】
列名をコピーした場合は以下のようにすればよい
これは直接コンソール画面に入力すること.R
Editor から実行すると,エディタの仕様の関係で上手く機能しない.
x < read.delim("clipboard")
|
ところで,関数
write.table(x, "clipboard", sep="\t") でデータ x をクリップボードにコピーすることが出来,この後
EXCEL シートにデータをペーストすることが出来る.
列名をコピーしなかった場合は以下のようにすればよい.
x < read.delim("clipboard", header=F)
|
【Mac OS X 版の場合】
まず以下の関数を定義する.
excel.mac <- function(...) {
args <- c(...)
temp <- matrix(scan(""), byrow=TRUE, ncol=length(args))
data <- data.frame(temp)
colnames(data) <- args
return(data)
}
|
次に,関数 excel.mac("変数名1","変数名2",・・・) を実行する.すると,以下のような画面になる.
x <- excel.mac("X", "Y")
1:
|
ここで,画面にデータをペーストする.データが読みとられた後,
を 2 回ほど押すとデータ入力が終了する.
x <- 1 |
gregmisc パッケージと Perl を用意することで,xls 形式のファイルを直接読み込むことが出来る.関数は read.xls() を使い,引数 sheet でシート番号を指定することが出来る.
library(gregmisc)
x <- read.xls("data01.xls", sheet=1)
|
ただし,Windows 版 R の場合で Perl を入れる必要がある.以下に,ActiveState:
ActiveState : http://www.activestate.com/
から 「ActivePerl」 を入れる方法を紹介する.
まず,左下図の 「ActivePerl x.x.x.xxx」 をクリックし,右下図の 「Download」 をクリックする.
|
|
|
すると,ユーザー名を入れる画面(左下図)になるので,(名前を入れたい人は名前を入れてから) 〔Next >〕 をクリックする.すると,ダウンロード出来る実行ファイル一覧が出るので,Windows 版の ActivePerl をダウンロードする.OS が 2000/XP の方は MSI 版をダウンロードしてインストール,98/Me/NT の方は「Windows Installer」をインストールしてから MSI 版をダウンロードしてインストールすればよい.
|
|
|
インストーラがダウンロードできたら,インストーラを起動する.まず 〔Next >〕 をクリックするとライセンス条項が書かれた画面になるので,一読した後 〔Next >〕 をクリックする.
|
|
|
あとは 〔Next >〕 をクリックし続ける.
ActivePerl をインストールする場所は変更しない方がよい(デフォルトは C:\perl\bin\perl.exe ).変更すると,関数 read.xls()
を実行する際,その都度 ActivePerl の実行ファイルがある場所を引数 perl で指定しなければいけなくなる.
|
|
|
あとは 〔Next >〕 をクリックし続けると,〔Install〕 と書かれたボタンが出てくるので,これをクリックする.
|
|
|
すると,インストールが始まり,しばらくするとインストールが完了する.
|
|
|
R 以外の統計ソフト ( SAS など) で作成されたデータファイルからデータを読む場合は,パッケージ foreign 中の関数を用いる.例えば SPSS のデータファイルを読み込む場合は以下のようにする.
library(foreign)
read.spss("datafile", use.value.labels=FALSE)
|
R の foreign パッケージには以下の関数が用意されている.
|
関数 |
機能 |
lookup.xport() |
SAS XPORT フォーマットライブラリについての情報を探す. |
read.dta() |
Stata binary files を読み込む. |
read.epiinfo() |
Epi Info data files を読み込む. |
read.mtp() |
Minitab Portable Worksheet を読み込む. |
read.spss() |
SPSS data file を読み込む. |
read.ssd() |
read.xport() によって SAS のパーマネント・データセットからデータフレームを得る(SAS V9以降で作成されたデータセットのみ対応?). |
read.xport() |
SAS XPORT format library (ver.6) を読み込む. |
write.dta() |
Stata binary format をファイルに書き出す. |