みなさん,こんにちは。
シンノユウキ(shinno1993)です。
今回はR言語を用いてデータの読み込みを行う方法を紹介します.以下の3つのファイル形式を取り扱います:
・CSVファイル (csv)
・Excelファイル (xlsx)
多くの場合,データはこれらの形式のどれかで保存されています.なので,これらをある程度自由に読み込めるようにしておくと良いかと思います.
ではさっそく行きましょう!
作業ディレクトリについて
今後,サンプルファイルをダウンロードし,読み込んでいくにあたり,作業ディレクトリを把握しておく必要があります.作業ディレクトリにダウンロードしたファイルを移動させ,そこから開くと便利だからです.
作業ディレクトリが分からない?そんな場合は以下のコードを実行すると,作業ディレクトリがわかります:
> getwd() [1] "C:/Users/********"
この場所にダウンロードしたファイルを移動させるか,
もしくは作業ディレクトリを任意の場所に移動させてください.作業ディレクトリの移動には以下のコードを使用します:
> setwd("C:/Users/********/")
setwd("ディレクトリのパス")です.これで作業ディレクトリを移動させることができます.
TXTファイル
ではファイルの読み込みを行っていきましょう.
まずはテキストファイルからです.以下のサンプルファイルをダウンロードしてください:
このテキストファイルには,以下のように,ヘッダーが挿入されているタブ区切りのテキストが格納されています.
これを今から読み込んでみましょう!
テキストファイルを読み込む関数はread.table()が用意されています.
- file:テキストファイルが含まれるファイルパスを入力してください.
- header:読み込んだテキストファイルに列名(ヘッダー)が入力されているか否かを指定します.含まれる場合は
TRUE
,含まれない場合はFALSE
を指定してください. - seq:データの区切り文字を指定します.タブで区切られている場合は
"\t"
を指定,カンマの場合は","
を指定してください.ちなみに separator の略です. - skip:データの上部にコメントなど,読み込みが不要なデータが含まれる場合はその行数を指定してください.全てのデータを読み込む場合は
0
を,一番上のデータの読み込みが不要な場合は1
を指定します.
他にも引数はたくさんありますが,とりあえずこれだけ抑えておけば問題ないでしょう.
では実際に読み込んでみましょう.ダウンロードしたファイルを,作業ディレクトリに移動させてください.そして,以下のコードを実行してみましょう.
sample_text <- read.table( file = "text.txt", header = TRUE, sep = "\t", skip = 0 ) sample_text
読みやすいように改行していますが,一行で書いても問題ありません.read.table()
で読み込んだファイルを sample_text
に代入し,それを最後の行で出力しています.
すると,以下のような表が出力されるはずです:
sex hight width 1 male 159 77 2 female 170 70 3 male 164 68 4 female 175 64 5 male 167 76 6 female 165 70 7 male 162 67 8 female 160 75 9 male 169 67 10 female 150 78
上手く読み込むことができました!
CSVファイル
次はCSVファイルです.CSVファイルは,CSV:Comma-Separated Values の略で,値がカンマで区切られたテキストファイルなどを指します.データの読み込みは,このCSVファイルで行われる事が多いです.まずは以下のファイルをダウンロードしてください:
このファイルも先ほどのテキストファイルとほぼ同様ですが,以下のようにデータがカンマで区切られています:
このようなCSVファイルを読み込むのには,read.csv関数を使用します:
実はこれ,先ほどのread.tableと引数などほぼ同じです.さらにいうと,read.csvでもread.tableでも裏でなされている処理は同じです.引数のsepのデフォルト値がカンマかタブなどのスペースかが違うだけなのです.まぁ,CSVファイルを読むこむ時は,とりあえずread.csvを使っておけば良いんじゃない?ってくらいの認識で構いません.
とりあえず,先ほどと同じように読み込んで表示して見ましょう:
sample_csv <- read.csv( "CSV.csv", header = TRUE, sep = ",", skip = 0 ) sample_csv
以下のように表示されるはずです:
sex hight width 1 male 161 65 2 female 163 75 3 male 169 62 4 female 167 70 5 male 155 68 6 female 172 78 7 male 169 77 8 female 170 67 9 male 173 66 10 female 160 73
これでCSVファイルの読み込みもできました!
Excelファイル
最後にExcelファイルの読み込みをしてみましょう.本音をいうと,ExcelファイルをCSVファイルなどのプレーンな状態にしてからデータを読み込んでほしいのですが,実際にデータ分析をするとなるとこのような需要も発生するかと思いますので,Excelファイルの読み込みを行ってみましょう.
ただし,Rの標準機能では,Excelファイルの読み込みはできません.ライブラリ:readxl を使用する必要があります.通常だと,ライブラリを使用する場合はインストールが必要ですが,RStudioを使っているという方は標準でインストールされていますので,不要です.
readxl を使用することで,read_excelが使えるようになります.これの使い方は以下の通りです:
ほとんどread_csvと同じですね.ただし,sheet
という引数はread_excel独自のものです.
Excelには複数のシートが格納されている場合があるので,それを指定してあげる必要があります.
では,読み込んでいきましょう.以下のファイルをダウンロードしてください:
このファイルには,1シート目にはsex, height, weight が格納されています.このシートを読み込んでみましょう.以下のコードを入力してください:
library(readxl) sample_excel <- read_excel( "Excel.xlsx", sheet = 1, skip = 0 ) sample_excel
以下のように表示されるかと思います.Excelデータを読み込んでいるので,データ型も読み取れていますね.
sex hight weight <chr> <dbl> <dbl> 1 male 172 62.0 2 female 178 77.0 3 male 164 79.0 4 female 155 79.0 5 male 154 80.0 6 female 164 70.0 7 male 177 71.0 8 female 165 61.0 9 male 163 71.0 10 female 172 67.0
せっかくなので,2シート目も読み込んでみます.今回はシート名から読み込んでみましょう.
library(readxl) sample_excel <- read_excel( "Excel.xlsx", sheet = "Sheet2", skip = 0 ) sample_excel
以下のように表示されればOKです.
sex age <chr> <dbl> 1 male 51.0 2 female 27.0 3 male 54.0 4 female 45.0 5 male 29.0 6 female 42.0 7 male 39.0 8 female 31.0 9 male 54.0 10 female 39.0
これでExcelファイルの読み込みもできました!
まとめ
今回はデータの読み込みについて,テキストファイル,CSVファイル,Excelファイルの3つのファイル形式についてデータの読み込みを行いました.これからデータ分析を行うにあたって基本となる操作ですので,ぜひマスターしてください.
連載目次
- 【R×栄養統計】RとRStudioをインストールしよう
- 【R×栄養統計】四則演算と代表値の算出をやってみよう
- 【R×栄養統計】データの読み込み方法を習得しよう【TXT・CSV,・XLSX】現在のページ
- 【R×栄養統計】性別と肥満度に関係があるか?カテゴリデータの栄養統計
- 【R×栄養統計】正規分布しているか?正規性を確認する方法を紹介します
- 【R×栄養統計】男女でエネルギー摂取量に差はある?対応のない2群間の栄養統計
- 【R×栄養統計】栄養指導に効果はあった?対応のある2群間の栄養統計
- 【R×栄養統計】食べる速さでエネルギー摂取量に差がある?対応のない多標本の栄養統計
- 【R×栄養統計】多重比較を行う理由と使い分けを紹介|検定の多重性問題
- 【R×栄養統計】どの群間に差がある?対応のない多標本における多重比較