R言語でxlsxファイルを読み込む方法がいくつかあります。ここではopenxlsxパッケージを使用してxlsxファイルを読み込む方法について解説します。

openxlsxについて

openxlsxはワークシートの書き込み、スタイル設定、編集に高レベルのインターフェイスを提供することにより、xlsxファイルの作成を簡素化します。「Rcpp」を使用することで、読み取り/書き込み時間は「xlsx」および「XLConnect」パッケージと同等になり、Javaへの依存性がなくなるという利点が追加されています。
openxlsxによりxlsxファイルを読み込むには、read.xlsx()を使用します。

read.xlsx()の使い方

read.xlsx()の使い方は次になります。


read.xlsx(
  xlsxFile,
  sheet,
  startRow = 1,
  colNames = TRUE,
  rowNames = FALSE,
  detectDates = FALSE,
  skipEmptyRows = TRUE,
  skipEmptyCols = TRUE,
  rows = NULL,
  cols = NULL,
  check.names = FALSE,
  sep.names = ".",
  namedRegion = NULL,
  na.strings = "NA",
  fillMergedCells = FALSE
)

read.xlsx()の引数の意味

xlsxFile

xlsxファイルまたはWorkbookオブジェクト、xlsxファイルへのURLを指定します。

sheet

データを読み取るシートの名前または整数(シートの位置)を指定します。

startRow = 1

データの検索を開始する最初の行を指定します。
ファイルの先頭にある空の行は、startRowの値に関係なく、常にスキップされます。

colNames = TRUE

真偽値を指定します。
TRUEの場合、データの最初の行が列名として使用されます。

rowNames = FALSE

真偽値を指定します。
TRUEの場合、データの最初の列が行名として使用されます。

detectDates = FALSE

真偽値を指定します。
TRUEの場合は、日付の認識と変換を試みます。

skipEmptyRows = TRUE

TRUEの場合、空の行はスキップされ、データを含む最初の行がNAの行を返す後の空の行はスキップされます。

skipEmptyCols = TRUE

真偽値を指定します。
TRUEの場合、空の列はスキップされます。

rows = NULL

Excelファイル内のどの行を読み取るかを指定する数値ベクトルを指定します。
NULLの場合、すべての行が読み込まれます。

cols = NULL

Excelファイル内のどの列を読み取るかを指定する数値ベクトルを指定します。
NULLの場合、すべての列が読み込まれます。

check.names = FALSE

真偽値を指定します。
TRUEの場合、データフレーム内の変数の名前がチェックされ、構文的に有効な変数名であることが確認されます。

sep.names = “.”

列名をブランクに置き換える1文字を指定します。
デフォルトは「.」です

namedRegion = NULL

ブック内の名前付き領域を指定します。
startRowがNULLでない場合、引数rowsと引数colsは無視されます。

na.strings = “NA”

NAとして解釈される文字列の文字ベクトルを指定します。
空白のセルはNAとして返されます。

fillMergedCells = FALSE

真偽値を指定します。
TRUEの場合、結合されたセルの値は、結合内のすべてのセルに与えられます。

read.xlsx()の戻り値

read.xlsx()の戻り値はデータフレームです。

次は、openxlsxにあらかじめ格納されているreadTest.xlsxをread.xlsx()を使用してデータフレームに読み込むサンプルになります。


library(openxlsx)

xlsx_file <- system.file("extdata", "readTest.xlsx", package = "openxlsx")
df <- read.xlsx(xlsx_file, 1)

df |> str()

'data.frame':	10 obs. of  7 variables:
 $ Var1: logi  TRUE TRUE TRUE FALSE FALSE FALSE ...
 $ Var2: num  1 NA 2 2 3 1 NA 2 3 1
 $ Var3: num  1 NA 1.34 NA 1.56 1.7 NA 23 67.3 123
 $ Var4: chr  "a" "b" "c" NA ...
 $ Var5: num  42042 42041 42040 NA NA ...
 $ Var6: chr  "3209324 This" NA NA NA ...
 $ Var7: num  NA NA NA NA NA NA NA NA NA NA

df |> head()

   Var1 Var2 Var3 Var4  Var5         Var6 Var7
1  TRUE    1 1.00    a 42042 3209324 This   NA
2  TRUE   NA   NA    b 42041            NA
3  TRUE    2 1.34    c 42040            NA
4 FALSE    2   NA     NA            NA
5 FALSE    3 1.56    e    NA            NA
6 FALSE    1 1.70    f 42037            NA
R入門 openxlsxによるxlsxファイルの読み込み