一所懸命に手抜きする

デスクワークばかりのスポーツ嫌いで50歳も過ぎ、いよいよ足腰に衰えを感じつつある昨今。

Excelからデータを読み込むR関数(1)RODBC::sqlFetch()

Rは標準ではExcelファイルを読み込めないらしい

企業では多くのデータがExcelファイルとして存在します。
しかし、Rは標準ではExcelのデータを読み込むことができません。
例えば、Excelファイル「RTest.xls」の「社員名簿」シートに下記のようなデータがあります。

社員番号部署氏名
1営業部山田太郎
2営業部鈴木花子
3総務部杉本一郎
4財務部支払益子
5経理部会計主水
6秘書室白鳥麗子

サンプルExcelファイル作成コード
ありがちなデータですが、こんな簡単なデータベースもRは標準では読み込めないらしいのです。
※read.table()という関数でcsvファイルを読み込むことはできます。

RでExcelデータを読み込む

RODBCパッケージの関数を使う方法

 32bitR環境でRODBCライブラリCRAN - Package RODBCをインストールしてあれば、その中の関数を用いてExcelODBC接続できます。odbcConnectExcel()関数とsqlFetch()関数を用いるとExcelのシート全体を読み込むことができます。

[R]RODBC関数 odbcConnectExcel(),sqlFetch()実行例
   library(RODBC)
   fid <- odbcConnectExcel("C:/wrk/Rtest.xls")   #ファイル指定
  #fid<-odbcConnectExcel2007("C:/wrk/Rtest.xlsx")#ファイル指定
   .DGot <- sqlFetch(fid,"社員名簿")              # シート指定
   close(fid)                                    #接続を閉じる
  names(.DGot) <- make.names(names(.DGot))       # ヘッダ取得
  .DGot                                          #  表示
  # 社員番号 部署   氏名
  #1 1   営業部 山田太郎
  #2 2   営業部 鈴木花子
  #3 3   総務部 杉本一郎
  #4 4   財務部 支払益子
  #5 5   経理部 会計主水
  #6 6   秘書室 白鳥麗子

 ファイルを指定して接続し、シートを指定して、閉じるという三段階が必要です。
xlsx はodbcConnectExcel2007で接続するようです。

readxlパッケージ関数を使う方法もある

 比較的新しいパッケージにreadxl(CRAN - Package readxl)があります。これを使うと簡単ですが、ちょっと課題もあリますので次の機会に書きたいなと思います。

In R language,
RODBC package enables us to import Excel files to R.
It needs 3 steps as followings.
step1. establish connection to ODBC source(Excel file)
step2. sqlFetch function import a sheet fully into R.
step3. close ODBC connection.
With RODBC, we can import a table from an ODBC database into a dataframe.
In the next article,readxl package does it easier.