logo

Rで外部データをインポートする 📂R

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

20180422\_213714.png

ビッグデータを読み込んでいると、データの容量が大きすぎて上記のような警告メッセージが出ることがある。こんな時はオプションにquote=""だけ追加すれば簡単に解決できる。しかし、もっといい解決法はもっと良い関数を使用することだ。問題の原因が間違ったデータであることよりも、間違ったユーザーであることの方がずっと多いし、正直に言って君は後者だと覚えておこう。