RでExcelデータの読み書き

はじめに

Excelデータは、ビジネスや研究で広く利用されるフォーマットです。Rでは、専用のパッケージを使用することで、Excelファイル(.xlsxや.xls)を簡単に読み込んだり書き出したりできます。本記事では、基本的な操作方法から実践的な例までを解説します。

必要なパッケージのインストール

Excelファイルを扱うには、readxl(読み込み用)とwritexl(書き出し用)のパッケージを使用します。まずはインストールしましょう。


# パッケージのインストール
install.packages("readxl")  # 読み込み用
install.packages("writexl") # 書き出し用

Excelデータの読み込み

readxlパッケージを使った基本的な読み込み

readxlパッケージの read_excel() 関数を使えば、簡単にExcelファイルを読み込むことができます。


library(readxl)

# Excelファイルを読み込む
data <- read_excel("data.xlsx")
head(data)  # データの先頭6行を表示

主要なオプションの解説

  • sheet: 読み込むシート名または番号を指定します(デフォルトは最初のシート)。
  • range: 読み込むセル範囲を指定します(例: "A1:C10")。
  • col_types: 列の型を指定します(例: "text", "numeric", "date")。
  • na: 欠損値として扱う文字列を指定します。

# 特定のシートと範囲を指定して読み込む例
data <- read_excel("data.xlsx", sheet = "Sheet1", range = "A1:C10", na = "NA")
head(data)

Excelデータの書き出し

writexlパッケージを使った基本的な書き出し

writexlパッケージの write_xlsx() 関数を使ってデータフレームをExcel形式で保存できます。


library(writexl)

# データフレームをExcelファイルに保存
write_xlsx(data, "output.xlsx")

主要なオプションの解説

  • path: 保存先のファイルパス。
  • col_names: 列名を含めるかどうか(デフォルトはTRUE)。
  • format_headers: 列名のフォーマット設定。

練習:Excelデータを読み込んで加工・保存する

以下は、Excelファイルを読み込み、加工して新しいExcelファイルとして保存する例です。


library(readxl)
library(writexl)

# Excelファイルを読み込む
data <- read_excel("input_data.xlsx", sheet = "Sheet1")

# データの加工
data$new_column <- data$existing_column * 2

# 加工後のデータを書き出す
write_xlsx(data, "processed_data.xlsx")

トラブルシューティング

  • ファイルが見つからない場合: ファイルパスが正しいか確認してください。絶対パスや相対パスが使用できます。
  • .xls形式の場合: {readxl} は .xls ファイルにも対応していますが、大規模な .xls ファイルでは問題が発生する場合があります。その場合は、{gdata}, {openxlsx}, または Excel自体で .xlsx に変換することを検討してください。
  • エンコーディングエラー:: Excelファイルにはエンコーディング設定がありませんが、日本語データの場合に文字化けが発生した場合は、RStudioやシステムロケール設定も確認してください。

応用:複数シートの操作

{openxlsx}