potisanのプログラミングメモ

趣味のプログラマーがプログラミング関係で気になったことや調べたことをいつでも忘れられるようにメモするブログです。はてなブログ無料版なので記事の上の方はたぶん広告です。記事中にも広告挿入されるみたいです。

R openxlsxでxlsxファイルの名前付き範囲(テーブル)を読み込む

Microsoft ExcelLibreOffice Calcで使用されるxlsxファイルの名前付き範囲(Excelではテーブル含む)はopenxlsxread.xlsx関数で読み込めます。

ファイル名test.xlsxの名前付き範囲あるいはテーブルTable1は次のコードで読み込めます。結果はデータフレームです。

#install.packages("openxlsx")
require(openxlsx)
x <- read.xlsx("test.xlsx", namedRegion="Table1")

read.xlsxが重複する場合等は名前空間を明示できます。

x <- openxlsx::read.xlsx("test.xlsx", namedRegion="Table1")

Table1の内容が列名A, B, C、セル内容が1~9であった場合、次のようになります。

require(openxlsx)
x <- read.xlsx("test.xlsx", namedRegion="Table1")

class(x)
# [1] "data.frame"
x
#  A B C
#1 1 4 7
#2 2 5 8
#3 3 6 9

なお、openxlsxには日付の読み込み問題等があるそうです。名前付き範囲を使わなければreadxl等も利用できるため、適宜使い分けが必要かと思います。

参考