RODBCを介してエクセルシートを読み込む関数 getXls

ソースファイル:getXls
webから直接読み込む場合、以下のコードをRで実行
source("http://noucobi.com/Rsource/getXls.R")

ブック名およびシート名を指定して、エクセルファイルからデータをインポートします。
パッケージRODBCを使用するので、あらかじめCRANかミラーからインストールしておいてください。
インストールさえされていれば、library()は自動で行なわれます。

一度に読み出せるシートの数は1枚です。
引数には「ブック名のみ」または「ブック名とシート名(ないしシート番号)」を指定します。
「ブック名」しか指定しなかった場合、そのブックが含むシートが一覧されますので、番号ないしシート名を対話的に入力してください。

> getXls("dataset.xls")
There exist 3 sheets in the excel book.

      1       2       3 
  "CO2"  "iris" "women" 
Hit the number or the name of the sheet you want to import : 3

   height weight
1      58    115
2      59    117
3      60    120
4      61    123
5      62    126
6      63    129
7      64    132
8      65    135
9      66    139
10     67    142
11     68    146
12     69    150
13     70    154
14     71    159
15     72    164

sheet引数を指定すると、直接目的のシートを取り出せます。

> getXls("dataset.xls", sheet="women")
   height weight
1      58    115
2      59    117
3      60    120
4      61    123
5      62    126
6      63    129
7      64    132
8      65    135
9      66    139
10     67    142
11     68    146
12     69    150
13     70    154
14     71    159
15     72    164

area引数を指定すると、読み込む範囲をエクセル風に指定できます。
列のインデックスは、AからZZまで利用できます。

> getXls("dataset.xls", sheet="CO2", area="A1:C5")
  Plant   Type  Treatment
1   Qn1 Quebec nonchilled
2   Qn1 Quebec nonchilled
3   Qn1 Quebec nonchilled
4   Qn1 Quebec nonchilled
5   Qn1 Quebec nonchilled

simplify引数は、読み込んだデータをdata.frameのまま返すかmatrixにして返すかを指定する論理値です。
TRUEにするとmatrixが返されます。

> x <- getXls("dataset.xls", sheet="women")
> is.data.frame(x)
[1] TRUE #デフォルトではsimplify=FALSEなのでdata.frameが返っている
> 
> y <- getXls("dataset.xls", sheet="women", simplify=TRUE)
> is.data.frame(y)
[1] FALSE
> is.matrix(y)
[1] TRUE #matrixになっている

使用したデータ例
RODBCがインストールされていないと、以下のようなエラーがでます。
適当なミラーからパッケージRODBCをインストールしてください。

> getXls("dataset.xls")
以下にエラー getXls("dataset.xls") : Please install the <RODBC> package from the CRAN.

日本語は対応してないかも分からんです。
そのへんはRODBCの仕様に依存します。


■更新履歴■

09.05.01 ver.1.02
area引数で読み取り範囲を指定できるようにしました。
simplify引数でmatrixに変換するかを指定できるようにしました。
09.04.18 ver.1.01
シート名指定時に、$をつけずに済むようにしました。
09.04.15 ver.1.00
公開