Rでcsvファイルを読み込む3つの簡単な方法

R/Rstudio

ソフトに関係なく、取ったデータを解析するためにはデータの読み込みという作業が必要不可欠です。

Rを使う際のデータの読み込み方についてはいくつも方法がありますが、今回は.csvファイルを読み込む場合に限定して以下の3つの方法を紹介します。

  1. ファイル名を指定して読み込む方法
  2. ファイル名を指定せずに読み込む方法(file.choose()を使用)
  3. 必要なデータ部分だけを読み込む方法

 

1.ファイル名を指定して読み込む方法

以下の関数を使います。

dat<-read.csv(“ファイル名.csv”)

こちらは、Rが参照している階層にあるファイルの中から指定したファイルデータを読み込む関数となります。

注意すべき点は、Rが参照している階層とは別のフォルダに読み込みたいファイルを入れてしまっているとデータが見つからないというエラーが返されます

> dat<-read.csv(“dummy.csv”)
file(file, “rt”) でエラー: コネクションを開くことができません
追加情報: 警告メッセージ:
file(file, “rt”) で:
ファイル ‘dummy.csv’ を開くことができません: No such file or directory

上記のようなエラーが返ってきた場合は,Rが参照しているフォルダと自分が読み込みたいファイルが置いてあるフォルダの位置が異なっている場合があります。

Rが現在参照しているフォルダを調べる関数としてはgetwd() です。

もし、上記のエラーが出た場合はRが参照しているフォルダにファイルを置くか、Rの参照しているフォルダを変更する必要があります。

フォルダを変更したい場合はcd(”参照したいフォルダのパス”)を使うことで変更することができます。ただし、環境によってはパスに使用されてる文字が無効です、とか出ることもあるので注意が必要です。

Rstudioなら、Session ⇒ Set Working Directory ⇒ choose Dicectory…  を選択すれば、クリック操作で作業フォルダを変えることができます。

 

※ちなみにスクリプトファイルがデータと同じ階層にある状態のときに、そのスクリプト経由でRstudioを開けば最初からそのフォルダの階層を参照してる状態になるのでそもそもこの設定はいらないことが多いです。

2.ファイル名を指定せずに読み込む方法

file.choose()を使います。

この関数は、「ファイルを選択する」というそのまんまの関数で、これを先程のread.csv()に応用させて、ファイル名の代わりにこの関数を埋め込みます。

dat<-read.csv(file=file.choose())

この命令文を実行するたびにファイルの選択画面になり、選択したファイルが変数datに入ります。

この方法は、データファイル自体が更新され続けていてファイル名が定まっていないときなどに便利です。

3.必要なデータ部分だけを読み込む方法

最後に紹介するのは特定のファイルを読み込むのではなく、ファイルの中身の使いたい部分だけを読み込む方法です。read.delim(“clipboard”)を使います。
(delimとは,「範囲を定める」という意味のdelimitが関係していると思います。多分。)

dat<-read.delim(“clipboard”)

この方法は.csvファイルに限らず.xlsxでも,google スプレッドシートのデータでもRにデータを読み込むことができます。
必要な範囲をコピーした状態でこの命令文を実行するとクリップボードにある内容がデータとして読み込まれます。
read.delim("clipboard")画面

「データは綺麗に整ってないけどパッと分析したい」といったようなときに手軽にできます。
ファイルを読み込むとたくさん変数入ってなんか怖いって思う方は最初はこの方法でも良いかもしれません。

メリットとしてはパパッと分析結果知りたい時などに1番楽にできるところだと思います。
一方でデメリットとしては、コピーをする行為自体がどうしても人力であるため、範囲指定ミスなどの可能性がある点です。
また、「コピーをする」という作業をスクリプトに残せないため、再現性を保つという視点としてはあまりよろしくない方法だとも言えます。

そのため,ちょっと分析結果の確認をしたいときには便利ですが,最終的に分析の結果を固めるときには最初に紹介したread.csv(”ファイル名.csv”)を使うといいと思います。

まとめ

以上,Rでcsvファイルデータを読み込む際の方法として,3つの読み込み方を紹介しました。

  1. read.csv(“ファイル名.csv”)
  2. read.csv(file=file.choose())
  3. read.delim(“clipboard”)

自分の使用目的にあった使いやすい方法をつかうとよいと思います。

タイトルとURLをコピーしました