Rで外部データをインポートする
概要
Rは基本的に統計学のために生まれた言語だから、データの入力も便利になっている。
read.table(file, header = FALSE, sep = "", na.strings = "NA", fileEncoding = "")
関数紹介
read.table()
はデータテーブルを読み込む関数で、上記のように色々な便利なオプションを提供している。オプション自体はもっと多くあるけど、よく使用され、必ず知っておかなければならないものを選んだのだ。以下の説明を参考にしよう:
- (1)
header
:最初の行の扱いに関するオプションだ。header=T
にすると、特別な操作なしで最初の行をデータから除外して列の名前として指定してくれる。デフォルトはheader=F
で、普通のデータではデフォルトのまま使うことはない。 - (2)
sep
:区切り文字に関するオプションだ。多くのデータがcsv形式(コンマで区切られたデータ、Comma Separated Value format)で保存されるので、普通はread.csv()
を使うことになる。read.csv()
は基本的にsep = ','
がデフォルトなので、別にいじる必要がなくて、コードが少しでも綺麗になる。しかし、たまにread.table()
をそのまま使ったり、タブやスラッシュで区切られたデータの場合もあるので、稀に使うことがある。データを読み込んだら一列に汚く\t
(タブ)がべったりついていたら、100パーセントこの問題だ。 - (3)
na.strings
:欠損値に関するオプションだ。教科書に出てくる例でなく、どこかから持ってきたデータなら、とにかく整理がひどくて欠損値が溢れている。連続値変数に文字があるってことは、十中八九欠損値を表していて、これらを処理できないとデータ処理に苦労する。読み込む時から欠損値と分類しておけば、その後はNAとして綺麗に処理できるのでよく使用される。ちなみにna.strings=c("a","b","c")
のように複数の文字をベクトルで渡すことで、複数種類の欠損値の表現にも対応できる。 - (4)
fileEncoding
:読み込んだファイルのエンコーディングに関するオプションだ。コンピュータ専攻の人はCやPythonでより一般的な「データ」を扱うけど、統計を先に学んだ人はこの部分を軽視することが実際ある。正直に言って、よく使うわけではないけれど、知らなくてもいいってわけではない。予想外に後ろから叩かれることが多いから、必ず知っておいた方がいい。問題が発生しても慌てずにデータファイルのエンコーディングを確認してから入力すれば、スムーズに解決できる。
エラー:EOF within quoted string
ビッグデータを読み込んでいると、データの容量が大きすぎて上記のような警告メッセージが出ることがある。こんな時はオプションにquote=""
だけ追加すれば簡単に解決できる。しかし、もっといい解決法はもっと良い関数を使用することだ。問題の原因が間違ったデータであることよりも、間違ったユーザーであることの方がずっと多いし、正直に言って君は後者だと覚えておこう。