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をインストールしてあれば、その中の関数を用いてExcelにODBC接続できます。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.
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.