読者です 読者をやめる 読者になる 読者になる

一所懸命に手抜きする

監査の仕事をしています。ITを利用し、良い意味で「手抜き」することは効率化と精度アップに役立つと思うんです。部下への引き継ぎのためにまずは諸々頭から引っ張り出そうとブログを始めました。

[ Main ]  [ 別館 ]
当ブログで取り上げられている事案やデータベース、人物等はすべてフィクションです。

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

R Excel

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.
広告を非表示にする