統計・アクセス解析ツールR:エクセルファイルの読み書き


統計解析ツールRは非常に便利だけれども、日常使っているエクセルファイルでデータを管理しアクセス解析等をおこなっている方が多いと思います。

Rでのエクセルファイルの読み書きを紹介します。Rでデータを操作する事で、作業時間を減らすことができます。


必要なもの

  • R (未インストールの場合はこの記事を参照ください。)
  • XLConnectライブラリー

XLConnectライブラリーはエクセルファイルを出力する際に、フィルターの設定やセルの幅などの設定も可能です。

詳しくは下記のリンクを参照ください。

http://miraisolutions.wordpress.com/


初回作業

  • Rをインストール。
  • Rを立ち上げて以下のコードを実行してXLconnectをインストールする。

install.packages("XLConnect")


使用方法

  • エクセルファイルを読み書きするのに必要な『tcltk』と『XLConnect』のライブラリを呼び出すために以下のコードを実行する。

###ライブラリーの読み込み#####
library(XLConnect)
library(tcltk)
########

  • エクセルファイルの読み込み

以下の内容のエクセルファイル(.xlsまたは.xlsx)を読み込み。シート構成は1枚のみ。保存場所は例えばデスクトップとします。データは1列目はラベルとして読み込まれます。

スクリーンショット 2014-04-29 10.18.00


selectABook <- paste(as.character(tkgetOpenFile(title = "エクセルファイルを選択",
                                                filetypes = '{"エクセルファイル" {".xls" ".xlsx"}}')),
                     sep = "", collapse =" ") #読み込むエクセルファイルパスの取得
AnaData <- readWorksheet(loadWorkbook(selectABook), sheet = 1) #読み込んだエクセルファイルをAnaData変数へ格納する
AnaData
  X Y
1 1 6
2 2 4
3 1 5
4 2 7
5 1 8
6 2 9
7 1 4
8 2 5
9 1 2

Rに読み込めば、後は自由自在です。

  • エクセルファイルの書き出し

エクセルファイルへの書き出しはAnaData変数に格納されているデータとします。対象とするデータ変数は適時、変更してください。

試しに、先ほど読み込んだデータからX行が1のみを抽出しTEST.xlsxというファイル名で書き出してみたいと思います。

#データの抽出
SubsetData <- subset(AnaData, AnaData[, 1] == 1)

###保存先の設定#####
saveABook <- as.character(tkchooseDirectory(title = "データの保存先を選択")) #保存先の指定
setwd(saveABook)
########

###エクセル出力の設定#####
wb <- loadWorkbook("TEST.xlsx", create = TRUE) #エクセルファイルの作成
createSheet(wb, name = "TEST") #シートの作成
writeWorksheet(wb, SubsetData, sheet = "TEST") #データの書き込み
saveWorkbook(wb) #保存
########

書き出したエクセルファイルの内容は以下の内容となります。
エクセル保存結果

以上、基本的なエクセルファイルの読み書きでした。

スポンサードリンク

おすすめコンテンツ


スポンサードリンク