Rにデータを読み込ませる前に、どんな形式でデータを用意するべきかを少し。
Rでは、変数はヨコに、観測データ点はタテに並べたデータ形式を用いるのがとても有効。
ここで、変数とは「虫の個体数」「処理」「温度」といったものであり、観測データ点は平たく言えば「繰り返し(replicate)」のことである。
文章で書いてもわかりづらいので、以下に例を示す。
上のデータでは、c.id, leaf.id, p.id, treatment, ...が"列名"である。
Rでは、各列に各変数を並べるデータ形式が基本的に使われる。
なお、このようなデータ形式を"tidy data”と呼ぶことが近年提唱されている(このページにtidy dataのことが大変わかりやすく解説されている)。tidyrなどの便利なパッケージを使えば、tidyでないデータもRでtidyにできるがこれはやや応用編だと思う。R初心者は、エクセルのデータシートを作成する段階で、できるだけtidyなデータを作ることを心がけるべきだろう。
Rでは、個々の変数はほとんどの場合「ベクトル」 に格納される(ベクトルとは、同一の種類の要素がある順序に並んでいるもの)。
ベクトルには主に以下の種類がある。
数値ベクトル(numeric vector):数値が要素のベクトル。「連続変数」「比尺度」「間隔尺度」等と呼ばれるものに対応
因子ベクトル(factor vector):因子(要因)が要素のベクトル。「離散変数」「カテゴリカル変数」「名義尺度」「順序尺度」等と呼ばれるものに対応
文字列ベクトル(character vector):文字列が要素のベクトル。因子ベクトルと区別しづらいが、水準(levels)の属性がない
論理型ベクトル(logical vector):TRUE, FALSEが要素のベクトル
これらのうち、変数として扱われるのは主に数値ベクトルと因子ベクトルである。
複数の変数であるベクトルで構成されたデータが、Rにおける基本的なデータの形式である。
Rにデータを読み込ませる方法はいくつか存在する。
標準的なのは、read.csv()関数を用いるものである。カンマ区切りcsvファイルのデータシートを作成し、ファイルのパスを指定してRに読み込ませる。また、ファイルが存在するディレクトリを作業ディレクトリに指定すると、read.csv内でのファイル指定が簡略化できる。
以下にスクリプトの例を示す(なお、記号#は、それ以降の入力が単なる”メモ”であることを示す。メモはプログラムに影響しない)。
##データの読み込みと呼び出し
setwd("./sagyou") #"作業ディレクトリ"の指定
demodata <- read.csv("demodata.csv", header=TRUE) #csvファイルを読み込み
#データは半角英数にした方が無難
demodata #データの呼び出し
また、簡便な方法として、Windowsのクリップボードを使ってコピー&ペーストする方法もある。
まず、エクセル上にデータシートを用意し、取り込みたいデータ領域をコピーする(図2)。
図2
次に、Rのコンソール上にdata <- read.delim("clipboard")と入力し、実行する(図3)。
(これをエディタ上でやるとうまくいかないことがある(クリップボードの上書きが原因っぽい))
すると、R内に「data」という名前のデータが読み込まれる(図3)。
図3
ただし、この方法の場合、後からスクリプトを見ても、どこにあるどのデータを使って解析したのかがわからなくなってしまう(メモっておけば良いのだが)。とりあえず解析してみたいというときはクリップボードを使う方法でも良いが、再現性を重視したいならやはりread.csv等の関数を使ってどのデータを読み込んだか記録しておく方が良いだろう。
このような方法によって取り込まれたデータは、「データフレーム」と呼ばれるモノになっている。
データフレームとは、複数の同じ要素数のベクトルを各要素が縦に並ぶように整列させたものである。
R上でのデータセットの操作には、基本的にデータフレームが用いられる。
'18 7/31