本ページはプロモーションが含まれています

広告 Analysis R データ読み込み

R | エクセルファイルを読み込む方法(シート指定, NA処理, 列名指定)

エクセルファイルでデータまとめをしている人は非常に多いと思います。

Rにエクセルファイルを読み込ませたいが、やり方が分からない!

読み込むシートを指定したい!

こんな疑問を持つ方に、R、Rstudioでエクセルファイルを読み込む方法について紹介します。

csvファイルの読み込み方法は以下の記事にまとめています。ぜひご参考ください。

前準備:パッケージのインストールと読み込み

はじめに、エクセルファイルを読み込むためのパッケージをインストールします。
ここではreadxlパッケージを紹介します。

install.packages("readxl") #すでにインストール済みの方はスルーしてください
library(readxl) #readxlパッケージを読み込む

今回読み込むエクセルファイルについて

今回はBook1.xlsxというエクセルファイルを読み込みます。
1行目が列名、データの3行目に空白セルや4行目にn.a.と書かれたセルが含まれているデータです。

Numbersの画面ですが、エクセルファイルと思ってください。

read_excel関数でエクセルファイルを読み込む

Rのワーキングディレクトリに読み込みたいエクセルファイル(今回であればBook1.xlsx)がある場合、先ほど読み込んだreadxlパッケージのread_excel関数で読み込むことができます。

本記事では、黒字が入力コード、青字がRからの出力として記載しています。

excel <- read_excel("Book1.xlsx")
head(excel)

> head(excel)
# A tibble: 6 × 3
  gender test1 test2
  <chr>  <dbl> <chr>
1 男        11 15   
2 男        23 19   
3 男        NA 23   
4 男        20 n.a. 
5 男        10 6    
6 女        19 18 

1行目はcolnames(列名)、空白セルはNAとして読み込まれましたが、n.a.と書かれたセルはそのまま文字列として読み込まれました。

ポイント

read_excel関数で、特に何も指定しなかった場合
 ・1行目はcolnames(列名)になる
 ・空白セルはNAとして読み込まれる

任意の文字列をNAとして読み込む

n.a.と文字列で書かれたセルもNAとして読み込みたい場合は、na = "n.a"を追加します。

excel <- read_excel("Book1.xlsx", na = "n.a.")

head(excel)
> head(excel)
# A tibble: 6 × 3
  gender test1 test2
  <chr>  <dbl> <dbl>
1 男        11    15
2 男        23    19
3 男        NA    23
4 男        20    NA
5 男        10     6
6 女        19    18

先ほどのn.a.セルがNAに置き換わりました!

複数のワードをNAとして読み込む

n.a.と書かれたセル以外にもNAとして読み込みたいセルがある場合、すなわち複数のワードをNAとして読み込みたい場合についてです。
-(ハイフン)と書かれたセルと、n.a.と書かれたセルがあって、両方NAとして読み込みたい場合は以下のようになります。

excel <- read_excel("Book1.xlsx", na = c("-", "n.a."))

na = c( )の中に、NAとして読み込みたいワードを入れることでNAとして読み込んでくれます。

シートを指定して読み込む

エクセルの場合、データがいくつかのシートに分かれていることもあると思います。
シートを指定して読み込む方法は以下の通りです。

二枚目のシートを読み込む場合

excel <- read_excel("Book1.xlsx", sheet = 2)
head(excel)

シート名で読み込む場合

# sheet = で読み込みたいシート名を記述する
excel2 <- read_excel("Book1.xlsx", sheet = "mpg")
head(excel2)

二行目から読み込む(二行目を列名にする)

2行目に列名が記載されているようなエクセルファイルの場合、skip = 数字 を指定すれば数字分の行数をスキップして読み込むことができます。

# 1行目をスキップし、2行目から読み込む
excel2 <- read_excel(Book1.xlsx", sheet = "mpg", skip = 1) 
head(excel2)

Rstudioを使っている場合、Import Datasetからも読み込める

Rstudioを使っている場合、画面右上のEnvironmentペインにあるImport Datasetからも読み込むことができます。

1. Import Datasetをクリック

2. From Excelをクリック

3. Browseで読み込みたいエクセルデータを選択

4. Import Optionsのところで各種設定をします。

Name: 読み込むデータの名前を決める(Data, Dt, Datasetなど)
Sheet: 読み込むシートを指定
Range: 読み込む列の指定
Max Rows: 読み込む行数の指定
Skip: 何行スキップして読み込むか指定
NA: NAとして読み込みたい文字列を指定

5. 最後にImportをクリック

簡単に読み込むことができるので、ぜひ試してみてください!

まとめ:Rへのエクセルファイルの読み込みは簡単にできる!

今回はRにエクセルファイルを読み込む方法についてご紹介しました。

やり方としては、

 (1) readxlパッケージのread_excel関数を使う
 (2) RstudioのImport Dataset機能を使う

上記の2種類があり、どちらも簡単にエクセルファイルを読み込むことができます。

なお、readxlパッケージには、read_excel関数の他にもread_xls、read_xlsx関数があります。
結論からいうと、read_excel関数を使っておけばOKです。
というのも、read_xls、xlsxはその拡張子のファイルしか受け付けてくれません。一方、read_excel関数は拡張子を判別して読み込むため、どちらの拡張子でも受け付けてくれます。そのため、read_excel関数を使っておけば基本的にOKです。

read_excel() calls excel_format() to determine if path is xls or xlsx, based on the file extension and the file itself, in that order. Use read_xls() and read_xlsx() directly if you know better and want to prevent such guessing.

ReadxlのDescriptonから引用

\ オンラインでR言語を勉強するならUdemy /

UdemyのR講座を見てみる

R言語の勉強におすすめの本

今後Rの勉強をしていきたい!という方に、こちらの参考書がおすすめです。
特に、RユーザのためのRStudio実践入門は、tidyverseパッケージに特化して書かれていてとても実用的でしたのでオススメです。私自身、この本を読んでRで出来ることが一気に増えた実感のある本です。kindleで試し読みもできるのでぜひ参考にしてください。

この記事がRを学ぶ皆様のお役に立ちますように。

  • この記事を書いた人

かにさん

めんどくさがり日本代表のワーママ。
住んでいる自治体の認可保育料が高いことをキッカケに、全国の保育料まとめブログを書き始めました。
趣味
ブログ執筆、海外ドラマ(刑事モノ)、投資、
面倒なことをいかに楽にこなすか考えること

-Analysis, R, データ読み込み