(O+P)ut

OutPut Log by SE in SIer



(O+P)ut

Output Log by SE

【R言語】openxlsxにてエクセルファイルを読み込む

スポンサーリンク

方法

test.xlsxというファイルのSheet1に以下セルがあるとして

Name Age Sex
Ken 30 M
Yumi 25 F
Takashi 28 M

openxlsxライブラリの関数read.xlsxを利用するとdata.frameとして取得可能。

> wb <- read.xlsx("test.xlsx")
> wb
     Name Age Sex
1     Ken  30   M
2    Yumi  25   F
3 Takashi  28   M

型を確認すると以下のようによしなに扱ってくれる。

> str(wb)
'data.frame':   3 obs. of  3 variables:
 $ Name: chr  "Ken" "Yumi" "Takashi"
 $ Age : num  30 25 28
 $ Sex : chr  "M" "F" "M"

以下、補足です。

補足

インストールは以下で可能です。

> install.packages("openxlsx")
...
パッケージ ‘Rcpp’ は無事に展開され...
 パッケージ ‘zip’ は無事に展開され...
 パッケージ ‘openxlsx’ は無事に展開され...

read.xlsx自体は以下です。引数もしっかり指定できます。

> read.xlsx
function (xlsxFile, sheet = 1, startRow = 1, colNames = TRUE, 
    rowNames = FALSE, detectDates = FALSE, skipEmptyRows = TRUE, 
    skipEmptyCols = TRUE, rows = NULL, cols = NULL, check.names = FALSE, 
    namedRegion = NULL, na.strings = "NA", fillMergedCells = FALSE) 
{
    UseMethod("read.xlsx", xlsxFile)
}
<bytecode: 0x0000000004797f90>
<environment: namespace:openxlsx>

行に空白があると要注意で

Name Age Sex
Ken 30 M
Yumi 25 F
Takashi 28 M

> wb
     Name Age Sex
1     Ken  30   M
2    Yumi  25   F
3 Takashi  28   M

のように詰められます。

何かが入っていれば

Name Age Sex
Ken 30 M
a
Yumi 25 F
Takashi 28 M

以下のようにNAが挿入されます。

> wb
     Name Age  Sex
1     Ken  30    M
2       a  NA <NA>
3    Yumi  25    F
4 Takashi  28    M

直接xlsxファイルを扱えるので、結構便利なので覚えておくとどこかで役立つやもしれません。


他の記事を読む