R の画面の見方が分かったところで、次に R での解析でよく出る用語を説明します。
実際に手を動かしながら学びたい、という方は一旦このページを飛ばしてもらって、分からない用語がでてきたらこちらに戻ってください。
実験や観察で得られるデータの値には、体長 (170 cm) や体重 (50 kg) のような
数値だけでなく、性別 (オス・メス) や天気 (晴れ) といったカテゴリ、
実験時に生じたことのメモ書きのような文章など、様々な種類が存在します。
こうしたデータの値の種類ごとに適切な扱い方は変わってきます。
ここでは、実験データの解析時によく使うデータの値の種類
(numeric型、factor型、character型)について説明します。
① numeric 型
numeric 型のデータ とは、数値データのことです。
長さや重さ、得点などのデータが該当します。
なお、数値データについて、実数の場合には double 型、
整数の場合には integar 型で表すこともできます。
② factor 型
factor 型のデータとは、カテゴリとして扱われるデータのことです。
性別(オス・メス)、天気(晴れ・曇り・雨)、実験の処理(処理あり・処理なし)
など、事前に決まっているいくつかのカテゴリから選ばれるものが該当します。
なお、このカテゴリのデータは文字で入力し、表示されますが、
実際のRでの解析時にはダミー変数と呼ばれる数値に変換されて処理されます。
(例えば、オス・メスの性別は、オスを0、メスを1として表すことができます。)
③ character 型
character 型のデータとは、文字列として扱われるデータのことです。
同じ文字を扱うデータとして、先に factor 型のデータを紹介しましたが、
これとは全くの別物です。
factor 型は「カテゴリを持つ文字」であるのに対し、
character 型は「カテゴリを持たない文字」を表します。
例えば、バッタを捕まえて「性別(オスかメスか)」を調べたデータを入手したとします。
個体番号 | 性別 | 採集場所 |
---|---|---|
001 | オス | 草原 |
002 | メス | 砂地 |
この「性別」は factor 型で扱われた時と character 型で扱われた時で意味が大きく変わります。
factor 型として扱われる場合、
個体番号001の性別は「オスかメスかいずれかのカテゴリの内のオス」
個体番号002の性別は「オスかメスかいずれかのカテゴリの内のメス」
を意味します。
一方、character型として扱われる場合、
個体番号001の性別は「"オ"と"ス"の2つの文字からなる文字列"オス"」
個体番号002の性別は「"メ"と"ス"の2つの文字からなる文字列"メス"」
となります。
"オス" と "メス" は意味をもたない文字列なので、性別の解析には使えません。
基本的に、作図や統計解析の対象となる文字のデータを factor型として扱います。
一方、解析の対象ではないものの、想定外のデータが見つかった時に参照する、
実験時の注意書きのような文字のデータを character 型として扱います。
実験データの解析時には、主に numeric 型、factor 型、character 型のデータを扱います。
ただし、R が扱うデータの型には、この3種以外にもたくさんの種類があります。
例えば、日付や時刻を扱う場合には、Date 型 や POSIXct 型を使います。
上記ではRで扱うデータ1つの値に注目してその種類を説明しました。
しかし、実際のデータは1つの値だけでなく、複数の値の集まりから構成されます。
実験のデータ解析の際によく登場するデータの集合には、
ベクトル と データフレーム の2種類があります。
① ベクトル
高校数学でなじみがある ベクトル ですが、R での定義もこれと同じです。
複数の要素から成るデータの集まりをベクトルとして扱います。
高校数学との違いは、この要素は数字だけでなく、文字でも構わないという点です。
Rのコンソール画面からベクトルのデータを入力する場合は、
各要素をカンマで区切り、 c() で囲みます。
例えば、12、18、4 の3つの数字からなるベクトルを入力したいときには
c(12,18,4) |
と入力します。
また、リンゴ、ブドウ、みかんという3つの文字からなるベクトルを入力したいときには
c("リンゴ", "ブドウ", "みかん") |
と入力します。
(文字のデータ(factor 型や character 型)は " " で囲む必要があります。)
② データフレーム
実験データの解析に使うデータの集まりは、基本的にデータフレームの形で扱います。
データフレームとは、
行(ヨコ)と列(タテ)の2つの要素から成り、列が変数を示し、
行ごとに各変数の値が入力された構造のデータの集まりになります。
図にすると以下のようになります。
データフレームは R 上でも作成できますが*、実験データの解析に R を使う場合、
先に Excel にデータフレームの形でデータを入力しておき、
それを R で読み込んで解析をしていく、という方法が使いやすいです。
Excel でのデータ入力の方法については、次のページで紹介します。
* データフレームの作成には、data.frame() という関数を使います。例えば、
data.frame(id = c(1,2,3), experiment1 = c("success","fail","fail"), time = c(13,11,15)) |
と入力すると、
というデータフレームが作られます。
R のコンソール画面にコマンドを入力して実行すると、
実行結果がコンソール画面に表示されます。
ただし、このままではこの実行結果は表示されるだけで、
他の解析に使うことができません。
実行結果を他の解析に使うためには、
実行結果を一時的に格納するための入れ物を作り、その中に格納する必要があります。
この入れ物(箱のようなもの)がオブジェクトになります。
R では
任意のオブジェクト名 <- 実行したいコマンド |
と入力すれば、コマンドの実行結果が任意の名前のオブジェクトに格納されます。
(<- は代入を意味します。)
オブジェクトには数値、文字、ベクトル、行列、音声など、
様々なデータを格納することができます。
例えば、先に紹介した data.frame() を使って生成したデータを
mydata というオブジェクトに格納する場合、以下のように入力します。
mydata <- data.frame(id = c(1,2,3), experimemt1 = c("success", "fail", "fail"), time = c(13,11,15)) |
こうすると、data.frameで作ったデータは mydata という名前で保存されます。
次からは mydata と入力することで、作成したデータフレームにアクセスできます。
オブジェクトの中身を確認したいときには、
コンソール画面にオブジェクトの名前を入力してあげます。
例えば、上のように mydata というオブジェクト (データフレームが格納されている) を
作成した後に、mydata と入力すれば、
> mydata |
という風に、オブジェクトの中身が返ってきます。
オブジェクトを作成した後には、まずオブジェクト名を入力してみて、
きちんと入力できているか、中身を確認しておくことをおすすめします。
ここまでに factor, character, オブジェクト, 関数といった
R に登場する様々な "文字" を紹介してきました。
ここで一旦整理しておきます。
① オブジェクト (表記の例)abcde
アルファベットのみで表される文字は、オブジェクトです。
ベクトルやデータフレームなど、様々なデータを格納する箱です。
② 関数 (表記の例)abcde()
アルファベットの後に () がついている文字は関数です。
関数は一連の処理を実行するコードです。
高校数学にでてくる関数をイメージすれば分かりやすいと思います。
例えば、f (x) = 3x という関数を考えます。
この関数 f (x) は、パラメータ x の値を入力することで、
x に3をかけた値が計算結果となります。
R でも、() 内にパラメータ(引数とも呼ばれる)を入力することで、
パラメータに応じた処理の結果が表示されます。
(ただし、多くの関数ではパラメータを指定しない場合でも、
デフォルトの値を使った計算結果が返されます。)
関数は標準で定義されているもの以外にも、
パッケージを読み込んだり自分で定義したりすることで、
いろいろな処理を実行することができます。
(パッケージについては後述します。)
ちなみに、関数として定義されている文字について、
() を取り除いたものをコンソール画面に入力すると、
関数の中身が表示されます。
③ 文字 (表記の例)"abcde"
"" で囲まれた文字は、単なる文字を意味します。
"" で囲まれた部分が1つ分の文字のデータになります。
この文字には、上述した factor型 や character型 などの型があります。
R はデフォルトの状態でも様々な種類の関数を使用することができます。
しかし、デフォルトの関数だけでは思った解析ができない場合もあります。
そのような場合、パッケージが役立ちます。
パッケージとは、様々に定義された関数がまとめられたものです。
パッケージを読み込むことで、パッケージ内で定義された
新たな関数を使えるようになります。
パッケージの使用には、install.packages() と library() の2種類の関数を用います。
install.packages() はインターネット上からパッケージをパソコンに取り込む時に使います。
() 内には任意のパッケージ名を入力します。
既にパソコン上にパッケージを取り込んでいる場合、再度取り込む必要はありません。
そのため、この関数はあるパッケージを初めて使う時に一度だけ使うものです。
一方、library() は パソコンに保存されたパッケージを R で読み込むときに使います。
() 内には先ほど同様、パッケージ名を入力します。
ただし、R上で読み込まれたパッケージ情報はR の終了と共に消えるため、
library() を用いたパッケージの読み込みは、 R を起動する度に行う必要があります。
R では加(+)減(-)乗(*)除(/)等の演算子を使用することができます。
よく使う演算子の中に「=」と「==」という似たものがありますが、
これらは意味が大きく異なるので、ここで紹介しておきます。
「=」は「代入」を意味する記号で、先に登場した「<-」と同じです。
そのため、
A = 200 |
と書くと、A という名前のオブジェクトに 200 という値が代入されます。
ただし、「=」は次に紹介する「==」と誤入力しやすいので、
「代入」を表す記号としては「<-」の方がよく使われています。
一方、「==」は「等号」を意味します。例えば、
A == 200 |
と入力すれば、「A は 200 と等しい(かどうか)」を表します。
なお、A という名前のオブジェクトに 200 が入っていた場合には TRUE という結果が、
それ以外の数値や文字が入っていた場合には FALSE という結果が返ってきます。
R では # 以降に書かれた文章は改行されるまで評価されません。
そのため、コメントをつけたい時に # を使います。
例えば
mydata<-read.csv(○○.csv) #read.csvはcsvファイルを読み込む関数 |
と入力して実行すると、「read.csvはcsvファイルを読み込む関数」の部分は
評価されません。
(# が無いとこの文字が評価され、エラーが返ってきます。)
慣れるまではなるべくコメントをつけておくことをおすすめします。
R で解析をした結果を論文として出版するときには、使用した R を引用する必要があります。
R では、コンソール画面に citation() と入力することで、R のバージョンと引用情報を
入手することができます。
なお、Mendeley に R の情報を追加したい場合には、@Manual 以降の部分をコピーして
メモ帳などに貼り付けし、拡張子を .bib として保存します。
(windowsのメモ帳はデフォルトが .txt 形式での保存なので、変更する必要があります。)
このファイルを Mendeley で読み込めば、R の引用情報が Mendeley に登録されます。